MySQL – 如何得到两个date之间的小时数的精确差异
我将在下面的例子中说明我想要的内容:
'2010-09-01 03:00:00' - '2010-09-01 00:10:00'
使用TIMEDIFF()
,我们得到2结果。 这意味着,它不考虑剩下的50分钟。
在这种情况下,我想得到的是:50(分钟)/ 60 = 0.83期间。 因此,结果应该是2.83而不是2。
select time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00' )) / 3600; +-----------------------------------------------------------------------------+ | time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00' )) / 3600 | +-----------------------------------------------------------------------------+ | 2.8333 | +-----------------------------------------------------------------------------+
我认为一个更完整的答案是
select time_format(timediff(onedateinstring,anotherdateinstring),'%H:%i:%s')
这使您能够以您想要的格式查看您希望看到的小时,分钟,秒钟等。
有关time_format的更多信息: http : //dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_time-format
你可以试试以下内容:
time_format(timediff(max(l.fecha), min(l.fecha) ),'%H:%m') //Hora y minutos
它是一个非常古老的线程,但您也可以尝试TIMESTAMPDIFF并给MINUTE,HOUR,SECONDS作为限定符。
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff
使用TIMESTAMPDIFF确切的小时数:
SELECT b.`Start_Date`, b.`End_Date`, TIMESTAMPDIFF(HOUR, b.`Start_Date`, b.`End_Date`) AS `HOURS` FROM my_table b;
MySQL获取时间戳之间的小时数:
select timestampdiff(second,'2010-09-01 00:10:00', '2010-09-01 03:00:00')/3600;
如果你使用时间戳,这可能是使用SQL的MySQL解决scheme。
SELECT TIMESTAMPDIFF(HOUR, '2010-11-29 13:13:55', '2010-11-29 13:16:55') as newtable; | newtable | 7 1 row in set (0.01 sec)