如何计算MySQL中日期时间间隔?

时间:2009-09-22 05:58:49

标签: sql mysql

例如,如何计算这两个日期时间之间的间隔:

2009-09-18 00:00:00

2009-10-17 00:00:00

修改

我的意思是以年 - 月 - 日小时格式获取间隔:min:seconds

4 个答案:

答案 0 :(得分:10)

如何使用datediff

mysql> select abs(datediff('2009-09-18 00:00:00', '2009-10-17 00:00:00'));
+-------------------------------------------------------------+
| abs(datediff('2009-09-18 00:00:00', '2009-10-17 00:00:00')) |
+-------------------------------------------------------------+
|                                                          29 |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

引用手册:

  

DATEDIFF()返回expr1 – expr2   表示为从一天开始的值   约会到另一个。 expr1和expr2   是日期或日期和时间表达。   
只有值的日期部分   用于计算。

答案 1 :(得分:5)

您可以试用DATEDIFFTIMEDIFF

答案 2 :(得分:3)

或者像这样使用timestampdiff():

  

TIMESTAMPDIFF(微秒,yourtime,现在())

第一个参数是mysql datetime unit,可以是" microsecond,second,minute,hour,day,year",这个函数表示第三个参数datetime减去第二个参数datetime。

mysql> select timestampdiff(second, "2009-09-18 00:00:00", "2009-10-17 00:00:00");
+---------------------------------------------------------------------+
| timestampdiff(second, "2009-09-18 00:00:00", "2009-10-17 00:00:00") |
+---------------------------------------------------------------------+
|                                                             2505600 |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

答案 3 :(得分:1)

您只需减去日期时间,它就会返回值:

选择(现在() - 间隔2天) - (现在() - 间隔5天);

结果不是日期时间(在这种情况下,它是一些十进制编码日期 - 三天3000000),但是将日期时间和间隔视为相同的数据类型是不正确的。