【问题标题】:Setting up a parameter around a timestamp on db2在 db2 上围绕时间戳设置参数
【发布时间】:2016-04-09 18:04:42
【问题描述】:

大家好,我想编写一个查询,排除周一上午 10 点到周二上午 7 点之间的任何 CHECKIN_DATE (TIMESTAMP)。我发现了两个有趣的函数DAYOFWEEKHOUR不幸的是我不知道怎么写,这是我目前查询的地方

SELECT * FROM LIST_CHECKIN_AUDIT 
WHERE DOCUMENT_TYPE = 'DABL'
AND CHECKIN_DATE BETWEEN (DAYOFWEEK(CHECKIN_DATE) = '2' AND HOUR(CHECKIN_DATE) = '9') AND (DAYOFWEEK(CHECKIN_DATE = '2' AND HOUR(CHECKIN_DATE = '7')

提前致谢!

【问题讨论】:

    标签: sql timestamp db2 dayofweek


    【解决方案1】:

    如果您尝试排除 CHECKIN_DATE 介于周一上午 10 点和周二上午 7 点之间的任何记录,那么我认为以下内容应该适合您。

    SELECT *
      FROM LIST_CHECKIN_AUDIT 
     WHERE DOCUMENT_TYPE = 'DABL'
       AND (DAYOFWEEK(CHECKIN_DATE) <= 2 AND HOUR(CHECKIN_DATE) <= '9'))
        OR (DAYOFWEEK(CHECKIN_DATE) >= 3 AND HOUR(CHECKIN_DATE) >= '7'))
    

    【讨论】:

    • 工作就像一个魅力,顺便问一下,你知道我怎样才能让它在星期二晚上 7 点以后再次出现吗?我想这将是一个触发器..但我不确定!!再次感谢!
    • 很高兴它有帮助。您的意思是您希望这些记录被包括在内,即当您在星期二晚上 7 点之后执行查询时再次出现?
    • 是否有一个时间窗口,在此期间您执行查询时您不希望这些记录显示?如果是这样,您可以将具有 CURRENT_DATE(在 DB2 中)的类似条件添加到 WHERE 子句
    • 这样的,
    • 且不存在(从 LIST_CHECKIN_AUDIT A2 中选择 1,其中 A.BILL_NUMBER = A2.BILL_NUMBER 且 A2.DOCUMENT_TYPE = 'DABL' AND ((DAYOFWEEK(A2.CHECKIN_DATE) = 2 AND HOUR(A2.CHECKIN_DATE ) >= '10') OR (DAYOFWEEK(A2.CHECKIN_DATE) = 3 AND HOUR(A2.CHECKIN_DATE) = ' 10') OR (DAYOFWEEK(CURRENT TIMESTAMP) = 3 AND HOUR(CURRENT TIMESTAMP)
    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多