GVKun编程网logo

MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?

17

如果您想了解MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的

如果您想了解MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的年月日天方法、excel怎么计算两个日期间的时间差值?excel中日期时间差值如何计算教程、JavaScript 计算两个日期时间的时间差(YY-MM-DD HH:MM:SS)格式、JavaScript获取两个日期时间之间的时差的各个方面,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?

MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?

在MySQL查询中,我使用 timediff / time_to_sec 函数计算两个日期时间之间的总分钟数。

例如:

2010-03-23 10:00:00-2010-03-23 08:00:00= 120 minutes

我想做的是排除在选定时间范围内发生的任何休息。

例如:

2010-03-23 10:00:00-2010-03-23 08:00:00-(break 08:55:00 to 09:10:00)= 105 minutes

是否有一个好的方法可以做到这一点而无需求助于一长串的嵌套IF语句?

UPDATE1:

为了澄清-我正在尝试计算用户完成给定任务所需的时间。如果他们喝咖啡休息时间,则需要排除该时间段。茶歇时间为固定时间。

答案1

小编典典

将所有您在这段时间内发生的休息时间相加,然后减去timediff / time_to_sec函数的结果

SELECT TIME_TO_SEC(TIMEDIFF(''17:00:00'', ''09:00:00'')) -- 28800SELECT TIME_TO_SEC(TIMEDIFF(''12:30:00'', ''12:00:00'')) -- 1800SELECT TIME_TO_SEC(TIMEDIFF(''10:30:00'', ''10:15:00'')) -- 900-- 26100

假设这个结构:

CREATE TABLE work_unit ( id INT NOT NULL, initial_time TIME, final_time TIME)CREATE TABLE break ( id INT NOT NULL, initial_time TIME, final_time TIME)INSERT work_unit VALUES (1, ''09:00:00'', ''17:00:00'')INSERT break VALUES (1, ''10:00:00'', ''10:15:00'')INSERT break VALUES (2, ''12:00:00'', ''12:30:00'')

您可以使用下一个查询来计算它:

SELECT *, TIME_TO_SEC(TIMEDIFF(final_time, initial_time)) total_time, (SELECT SUM( TIME_TO_SEC(TIMEDIFF(b.final_time, b.initial_time)))  FROM break b   WHERE (b.initial_time BETWEEN work_unit.initial_time AND work_unit.final_time) OR (b.final_time BETWEEN work_unit.initial_time AND work_unit.final_time) ) breaks FROM work_unit

Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的年月日天方法

Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的年月日天方法

Excel两个日期之间的时间差怎么算?Excel怎么计算两个日期之间相差的年月日天数只差?当我们在使用Excel时,怎么使用函数计算两个日期之间相差的年月日以及具体天数之差吗,下面就和小编一起来看看吧!

1、以Microsoft Excel为例,打开需要计算两个日期之间相差的年、月、日的表格;

Excel两个日期之间的时间差怎么算

2、首先我们算日期和日期之间相差的年份,点击一个空白单元格,输入函数【=DATEDIF(开始日期,结束日期,“比较单位Y”)】,比较单位有年(Y)、月(M)、日(D);

例如【=DATEDIF(A2,B2,"Y")】,开始日期是A2单元格所在的日期,结束日期是B2所在单元格的日期,Y表示求A2和B2之间相差的年份;

Excel两个日期之间的时间差怎么算

3、回车之后得出一个时间,这就是它们相差的年份,0的意思就是相差不满一年;

Excel两个日期之间的时间差怎么算

4、点击第一个相差年份结果所在的单元格,拉动右下角的【填充键】下拉填充,直接套入公式获得结果;

Excel两个日期之间的时间差怎么算

Excel两个日期之间的时间差怎么算

5、然后就是求相差的月,输入函数【=DATEDIF(开始日期,结束日期,“比较单位M”)】,例如【=DATEDIF(A2,B2,"M")】;

Excel两个日期之间的时间差怎么算

6、求相差的日,也就是相差的天数,输入函数【=DATEDIF(开始日期,结束日期,“比较单位D”)】,例如【=DATEDIF(A2,B2,"D")】;

Excel两个日期之间的时间差怎么算

以上就是Excel两个日期之间的时间差怎么算的全部内容了,希望以上内容对您有所帮助!

excel怎么计算两个日期间的时间差值?excel中日期时间差值如何计算教程

excel怎么计算两个日期间的时间差值?excel中日期时间差值如何计算教程

Excel两个日期之间的时间差怎么算?在Excel中,用户可以通过各种公式以及快捷方式计算出自己所需要的数据,这里小编给大家分享下excel计算两个日期间的时间差值,一起来看看吧!

Excel两个日期之间的时间差怎么算?

1、打开需要计算的excel表格,两个日期之间相差的年、月、日的表格。

2、首先我们算日期和日期之间相差的年份,点击一个空白单元格,输入函数【=DATEDIF(开始日期,结束日期,“比较单位Y”)】,比较单位有年(Y)、月(M)、日(D)。

例如【=DATEDIF(A2,B2,“Y”)】,开始日期是A2单元格所在的日期,结束日期是B2所在单元格的日期,Y表示求A2和B2之间相差的年份。

3、回车之后得出一个时间,这就是它们相差的年份,0的意思就是相差不满一年。

4、点击第一个相差年份结果所在的单元格,拉动右下角的【填充键】下拉填充,直接套入公式获得结果。

5、然后就是求相差的月,输入函数【=DATEDIF(开始日期,结束日期,“比较单位M”)】,例如【=DATEDIF(A2,B2,“M”)】。

6、求相差的日,也就是相差的天数,输入函数【=DATEDIF(开始日期,结束日期,“比较单位D”)】,例如【=DATEDIF(A2,B2,“D”)】。

JavaScript 计算两个日期时间的时间差(YY-MM-DD HH:MM:SS)格式

JavaScript 计算两个日期时间的时间差(YY-MM-DD HH:MM:SS)格式

getValue: function (time1,time2){
        var time1 = new Date(time1);    //转换为中国标准时间
        var time2 = new Date(time2);
        var time1 = time1.getTime();    //转换为时间戳
        var time2 = time2.getTime();
        var runTime = (time2 - time1) / 1000;       //开始得出时间差,然后计算
        var year = Math.floor(runTime / 86400 / 365);       
        runTime = runTime % (86400 * 365);
        var month = Math.floor(runTime / 86400 / 30);
        runTime = runTime % (86400 * 30);
        var day = Math.floor(runTime / 86400);
        runTime = runTime % 86400;
        var hour = Math.floor(runTime / 3600);
        runTime = runTime % 3600;
        var minute = Math.floor(runTime / 60);
        runTime = runTime % 60;
        var second = runTime;
        return year+''年,''+month+''月,''+day+''天,''+hour+''小时,''+minute+''分,''+second+"秒";
    },

帮到你了就给我点个赞吧

JavaScript获取两个日期时间之间的时差

JavaScript获取两个日期时间之间的时差

我知道我可以使用momentjs做任何事情,还可以做一些涉及日期的事情。但是令人尴尬的是,我很难去做一件看起来很简单的事情:得到两次之间的差。

例:

var now  = "04/09/2013 15:00:00";var then = "04/09/2013 14:20:30";//expected result:"00:39:30"

我试过的

var now = moment("04/09/2013 15:00:00");var then = moment("04/09/2013 14:20:30");console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"))//outputs 10:39:30

我不知道那里的“ 10”是什么。我住在巴西,所以如果相关的话,我们是utc-0300。

结果moment.duration(now.diff(then))是持续时间正确的内部值:

 days: 0 hours: 0 milliseconds: 0 minutes: 39 months: 0 seconds: 30 years: 0

所以,我想我的问题是:如何将momentjs持续时间转换为时间间隔?我肯定可以用

duration.get("hours") +":"+ duration.get("minutes") +:+ duration.get("seconds")

但我觉得有一些更 优雅 ,我完全失踪。

更新
看起来更近,在上面的示例中now是:

Tue Apr 09 2013 15:00:00 GMT-0300 (E. South America Standard Time)…}

并且moment(moment.duration(now.diff(then)))是:

Wed Dec 31 1969 22:39:30 GMT-0200 (E. South America Daylight Time)…}

我不确定为什么第二个值是夏令时(-0200)…但是我确定我不喜欢日期:(

更新2

好吧,该值为-0200,可能是因为1969年12月31日是使用夏令时的日期。

答案1

小编典典

此方法仅在总持续时间少于24小时时有效:

var now  = "04/09/2013 15:00:00";var then = "04/09/2013 14:20:30";moment.utc(moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")// outputs: "00:39:30"

如果您有24小时或更长时间,则使用上述方法将小时数重置为零,因此并不理想。

如果您想获得24小时或更长时间的有效回复, 则必须执行以下操作:

var now  = "04/09/2013 15:00:00";var then = "02/09/2013 14:20:30";var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));var d = moment.duration(ms);var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");// outputs: "48:39:30"

请注意,我使用utc时间作为快捷方式。你可以拉出来d.minutes()d.seconds()分开,但你也必须ZEROPAD他们。

这是必要的,因为durationmoment.js中当前尚无格式化异议的功能。
在这里已被要求。但是,有一个专门用于此目的的第三方插件称为moment-duration-format:

var now  = "04/09/2013 15:00:00";var then = "02/09/2013 14:20:30";var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));var d = moment.duration(ms);var s = d.format("hh:mm:ss");// outputs: "48:39:30"

今天的关于MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?的分享已经结束,谢谢您的关注,如果想了解更多关于Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的年月日天方法、excel怎么计算两个日期间的时间差值?excel中日期时间差值如何计算教程、JavaScript 计算两个日期时间的时间差(YY-MM-DD HH:MM:SS)格式、JavaScript获取两个日期时间之间的时差的相关知识,请在本站进行查询。

本文标签: