我已经忙了好几个小时了,但是我不能让它工作。
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差值是25 (小时)。但是我得到的输出是1(天)。
我怎样才能得到25小时的输出呢?
发布于 2012-07-20 21:07:28
使用TIMESTAMPDIFF怎么样?
SELECT TIMESTAMPDIFF(HOUR, start_time, end_time)
as `difference` FROM timeattendance WHERE timeattendance_id = '1484'发布于 2012-07-20 21:09:47
您最好使用TIMEDIFF而不是DATEDIFF,因为DATEDIFF在比较之前会将所有时间转换为日期。执行TIMEDIFF后,您可以使用小时函数获取小时数。
SELECT HOUR(TIMEDIFF(end_time, start_time)) as `difference`;发布于 2012-07-20 21:07:35
正如MySQL reference中所述,DATEDIFF只需要几天的时间。
如果两个日期都在1970年之后,则可以减去时间戳:
SELECT ( UNIX_TIMESTAMP("2012-01-02 13:00:00") -
UNIX_TIMESTAMP("2012-01-01 12:00:00") ) / 3600 ...或者:
SELECT TIMEDIFF ( "2012-01-02 13:00:00", "2012-01-01 12:00:00") / 3600 ... https://stackoverflow.com/questions/11579946
复制相似问题