当我需要仅计算08:00:00-16:00:00之间的时间时,计算从MySQL获取的两个日期时间值之间的时间的最佳方法是什么.
例如,如果我有值2008-10-13 18:00:00和2008-10-14 10:00:00,则时差应为02:00:00.
我可以用SQL做什么或者最好的方法是什么?我正在建立一个网站并使用PHP.
谢谢您的回答.
编辑:确切的是,我正在尝试计算"票"在工作时间内处于特定状态的时间.时间可能是几个星期.
EDIT2:我没有计算实际时差的问题,但减去了关闭时间,每天00:00:00-08:00:00和16:00:00-00:00:00.
-Samuli
该TIMEDIFF功能
TIMEDIFF()返回expr1 - 表示为时间值的expr2.expr1和expr2是时间或日期和时间表达式,但两者必须属于同一类型.
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00', -> '2000:01:01 00:00:00.000001'); -> '-00:00:00.000001' mysql> SELECT TIMEDIFF('2008-12-31 23:59:59.000001', -> '2008-12-30 01:01:01.000002'); -> '46:58:57.999999'