Mos*_*awi 36 mysql sql datediff
我已经忙了好几个小时,但是我无法让它发挥作用.
SQL
SELECT DATEDIFF(end_time, start_time) as `difference` FROM timeattendance WHERE timeattendance_id = '1484'
start_time = 2012-01-01 12:00:00
end_time = 2012-01-02 13:00:00
Run Code Online (Sandbox Code Playgroud)
差异是25(小时).但我得到的输出是1(天).
我怎样才能获得25小时的输出?
小智 88
那么使用TIMESTAMPDIFF呢?
SELECT TIMESTAMPDIFF(HOUR, start_time, end_time)
as `difference` FROM timeattendance WHERE timeattendance_id = '1484'
Run Code Online (Sandbox Code Playgroud)
您最好使用TIMEDIFF而不是DATEDIFF,因为DATEDIFF会在比较之前将所有时间都转换为日期.执行TIMEDIFF后,您可以获得具有HOUR功能的小时数.
SELECT HOUR(TIMEDIFF(end_time, start_time)) as `difference`;
Run Code Online (Sandbox Code Playgroud)
正如 MySQL参考中所述,DATEDIFF
只需要几天的时间。
如果两个日期都在 1970 年之后,您可以减去时间戳:
SELECT ( UNIX_TIMESTAMP("2012-01-02 13:00:00") -
UNIX_TIMESTAMP("2012-01-01 12:00:00") ) / 3600 ...
Run Code Online (Sandbox Code Playgroud)
或者:
SELECT TIMEDIFF ( "2012-01-02 13:00:00", "2012-01-01 12:00:00") / 3600 ...
Run Code Online (Sandbox Code Playgroud)
您可以使用 TIMEDIFF 和 HOUR 函数来提取小时。
SELECT HOUR(TIMEDIFF(end_time, start_time)) as `difference` FROM timeattendance WHERE timeattendance_id = '1484'
Run Code Online (Sandbox Code Playgroud)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff
http://dev.mysql.com/doc/refman/5.5/en/date-and -time-functions.html#function_hour