我正在制作一个工作时间跟踪数据库,该数据库还需要对工作时间进行一些计算。
最简单的操作可以通过。
AddTime(`starttime`,-`endtime`)
但一旦我需要计算更多的数字,我就会失败。
假设工作可以跨越午夜,开始时间:20:00:00,结束时间06:00:00,我会做一些类似的事情:
if(`starttime`<`endtime`, AddTime(`endtime`,-`starttime`),AddTime(`endtime`, AddTime (-`starttime`,24:00:00))) FROM tid WHERE 1
但这是不可接受的。
当我需要增加午休的可能性时,情况就变得更加复杂了。
该怎么办?
为了简化计算,我建议您在同一字段中同时存储开始和结束时间。这样做,您只需在MySQL查询中执行以下操作即可找到工作时间:
TIMESTAMPDIFF(HOUR, `start_datetime`, `end_datetime`);