如果您想了解MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的
如果您想了解MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的年月日天方法、excel怎么计算两个日期间的时间差值?excel中日期时间差值如何计算教程、JavaScript 计算两个日期时间的时间差(YY-MM-DD HH:MM:SS)格式、JavaScript获取两个日期时间之间的时差的各个方面,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- MySQL-计算两个日期时间之间的净时间差,同时排除休息时间?
- Excel两个日期之间的时间差怎么算-Excel计算两个日期之间想差的年月日天方法
- excel怎么计算两个日期间的时间差值?excel中日期时间差值如何计算教程
- JavaScript 计算两个日期时间的时间差(YY-MM-DD HH:MM:SS)格式
- JavaScript获取两个日期时间之间的时差
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时,怎么使用函数计算两个日期之间相差的年月日以及具体天数之差吗,下面就和小编一起来看看吧!
1、以Microsoft 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")】;
以上就是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)格式
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获取两个日期时间之间的时差
我知道我可以使用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他们。
这是必要的,因为duration
moment.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获取两个日期时间之间的时差的相关知识,请在本站进行查询。
本文标签: