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

Ofe*_*fer 9 mysql sql oracle

我想要获得2个用户之间的时差,我需要几小时的差异.

我试图使用DATEDIFF函数,但这是错误的.

这是我的代码:

SELECT DATEDIFF(*,  
(SELECT max(u1.time_c)
FROM users u)
,
(SELECT max(u2.time_c)
FROM users u2) 
Run Code Online (Sandbox Code Playgroud)

Mat*_*dge 14

来自MySQL DATEDIFF文档:

Only the date parts of the values are used in the calculation.
Run Code Online (Sandbox Code Playgroud)

你会想看看 TIMEDIFF

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

SELECT HOUR(TIMEDIFF(  
  (SELECT max(u1.time_c) FROM users u),
  (SELECT max(u2.time_c) FROM users u2)
)) 
Run Code Online (Sandbox Code Playgroud)


Flo*_*ita 3

您的 select 语句中必须有一个from子句。就像是

Select date1 - date2 from dual
Run Code Online (Sandbox Code Playgroud)

返回日期 1 和日期 2 之间的天数。

如果您想要小时数:

Select (date1 - date2)*24 from dual;
Run Code Online (Sandbox Code Playgroud)

(这仅适用于甲骨文)