【问题标题】:How do I know if a date is within the certain period我如何知道日期是否在特定时间段内
【发布时间】:2010-09-08 16:09:58
【问题描述】:

我们在某个表中捕获出勤数据,主要捕获值(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层

【问题讨论】:

    标签: sql database hibernate


    【解决方案1】:
    SELECT  userId
    FROM    mytable
    WHERE   '2010-09-09' BETWEEN startDate AND COALESCE(endDate, startDate)
    

    【讨论】:

    • 我们使用hibernate作为ORM层,是跨数据库可移植的coalesce命令
    • 它是一个标准,适用于MySQLPostgreSQLOracleSQL Server。不过不知道H2
    • coalesce 到底是做什么的?
    • @Loadmaster: 返回第一个非NULL 参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2012-07-08
    • 2014-04-13
    • 2013-01-24
    相关资源
    最近更新 更多