我们在某个表中捕获出勤数据,主要是捕获值(userId、startDate、endDate)。如果某人在某个日期申请休假,则仅填写 startDate,如果他申请一组日期,则捕获开始/结束日期。什么查询可以帮助我找到某人是否在某个日期(比如本月 9 日、12 日、15 日)休假
user1, 9/8/2010
user2, 9/9/2010, 9/10/2010
user3, 9/14/2010
user4, 9/15/2010
user5, 9/9/2010, 9/20/2010
users taking leaving on 9th would be user2, user5
users taking leaving on 12th would be user5
users taking leaving on 15th would be user4, user5
查询不应包含特定于数据库的构造,它需要在 h2/mysql/postgres 使用hibernate作为ORM层
最佳答案
SELECT userId
FROM mytable
WHERE '2010-09-09' BETWEEN startDate AND COALESCE(endDate, startDate)
关于sql - 我怎么知道日期是否在特定时间段内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669735/