我在mysql DB中有表Vacation
。该表格包含datetime_from
和datetime_to
。从星期一到星期五休假意味着表中只有一条带有两个时间戳的记录
date_from
= 'MONDAY_DATE 00:00:00'
date_to
= 'FRIDAY_DATE 23:59:59'
工作时间为每天8:00至16:00。我想得到员工在休假期间错过的所有工作时间(例如以小时为单位)。这是每天8小时x 5。
我能够在5个查询中实现这一点(每天一个,然后用PHP总结)作为日期间隔的交集但是是否可以仅在一个mysql查询中执行?< / p>
答案 0 :(得分:0)
SELECT SUM(date_to - date_from)为
seconds_missed
FROMVacation
在哪里......
这将为您提供假定where子句与给定用户匹配的员工错过的总秒数。我想你也可以在你的where子句中添加条件,只获取某个范围内的日期(即工作时错过了那一周)。