Mysql交叉日期时间

时间:2013-06-20 20:18:55

标签: php mysql

我在mysql DB中有表Vacation。该表格包含datetime_fromdatetime_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>

1 个答案:

答案 0 :(得分:0)

  

SELECT SUM(date_to - date_from)为seconds_missed FROM Vacation   在哪里......

这将为您提供假定where子句与给定用户匹配的员工错过的总秒数。我想你也可以在你的where子句中添加条件,只获取某个范围内的日期(即工作时错过了那一周)。