MySQL中两个日期之间的差异

Geo*_*oGo 164 mysql sql datetime date

如何计算两个日期之间的差异,格式YYYY-MM-DD hh: mm: ss和以秒或毫秒获得结果?

Dev*_*d G 304

SELECT TIMEDIFF('2007-12-31 10:02:00','2007-12-30 12:01:01');
-- result: 22:00:59, the difference in HH:MM:SS format


SELECT TIMESTAMPDIFF(SECOND,'2007-12-30 12:01:01','2007-12-31 10:02:00'); 
-- result: 79259  the difference in seconds
Run Code Online (Sandbox Code Playgroud)

所以,你可以TIMESTAMPDIFF用于你的目的.

  • 示例中的TIMEDIFF不正确,因为这不是这两天之间的秒数.TIMEDIFF返回TIME值,该值包含差异的小时,分​​钟和秒.乘以它不会产生有用的答案.使用TIMESTAMPDIFF. (8认同)
  • 太棒了!TIMESTAMPDIFF完美无缺!谢谢! (7认同)
  • 有趣的是,`TIMEDIFF()`期望开始和结束时间参数的顺序与`TIMESTAMPDIFF()`的预期相反. (4认同)
  • "天数之间的差异"究竟意味着什么?我不明白为什么将`TIMEDIFF`的结果乘以'24*60*60`不等于`TIMESTAMPDIFF`的结果. (2认同)
  • 注意:使用TIMEDIFF 函数时,时间值的范围可以是“-838:59:59”到“838:59:59”。https://www.w3schools.com/SQl/func_mysql_timediff.asp (2认同)

kvi*_*sta 35

如果您正在使用DATE列(或者可以将它们转换为日期列),请尝试DATEDIFF(),然后乘以24小时,60分钟,60秒(因为DATEDIFF以天为单位返回diff).来自MySQL:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

例如:

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30 00:00:00') * 24*60*60
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这项工作.`DATEDIFF`不会返回分数. (3认同)

Kai*_*las 27

使用DATEDIFF获取日期差异

SELECT DATEDIFF('2010-10-08 18:23:13', '2010-09-21 21:40:36') AS days;
+------+
| days |
+------+
|   17 |
+------+
Run Code Online (Sandbox Code Playgroud)

要么

请参阅以下链接 MySql在两个时间戳之间的差异天数?


Rom*_* KC 9

SELECT TIMESTAMPDIFF(HOUR,NOW(),'2013-05-15 10:23:23')
   calculates difference in hour.(for days--> you have to define day replacing hour
SELECT DATEDIFF('2012-2-2','2012-2-1')

SELECT TO_DAYS ('2012-2-2')-TO_DAYS('2012-2-1')
Run Code Online (Sandbox Code Playgroud)