如何获得2个日期之间的时差(以小时为单位)

时间:2012-06-07 06:31:29

标签: mysql sql oracle oracle-sqldeveloper

我试图获得2个用户之间的时差,我需要几小时的差异。

我尝试使用DATEDIFF功能,但这是错误的。

这是我的代码:

SELECT DATEDIFF(*,  
(SELECT max(u1.time_c)
FROM users u)
,
(SELECT max(u2.time_c)
FROM users u2) 

2 个答案:

答案 0 :(得分:14)

来自MySQL DATEDIFF docs

Only the date parts of the values are used in the calculation.

您需要查看TIMEDIFF

这将为您提供时间差异的小时数(假设您的time_c字段为DATETIME或类似字段)

SELECT HOUR(TIMEDIFF(  
  (SELECT max(u1.time_c) FROM users u),
  (SELECT max(u2.time_c) FROM users u2)
)) 

答案 1 :(得分:3)

您的select语句中必须包含from子句。 像

这样的东西
Select date1 - date2 from dual

返回date1和date2之间的天数。

如果您想要小时数:

Select (date1 - date2)*24 from dual;

(这只适用于oracle)