我正在使用以下查询从数据库中提取记录:
SELECT dateAdded, claimedDate, TIMESTAMPDIFF(SECOND, dateAdded, claimedDate) AS output FROM leads
WHERE HOUR(dateAdded) >= '9'
AND HOUR(dateAdded) < '18'
AND DAYOFWEEK(dateAdded) != 7
AND DAYOFWEEK(dateAdded) != 1
就目前而言,我目前仅选择时间戳为星期一至星期五9:00 am-5:00 pm的记录。我还需要能够排除以下主要节日:元旦,阵亡将士纪念日,独立日,劳动节,感恩节和圣诞节。
我需要所有时间都排除在外的那些假期。例如,查询应排除在11月的第四个星期四(感恩节)发生的所有记录,而不考虑年份。
这不一定需要仅MySQL的解决方案。如果做混合PHP / MySQL解决方案比较容易,那么效果也很好。谢谢您的帮助。
最佳答案
您需要一个满足“假日”条件的日期表,然后JOIN
进入该表。
Here's an example
否则,您只需将它们排除在外...
... WHERE dateAdded NOT IN ('2012-07-04', ...)
更新资料
This solution使用
JOIN
省略假期。