iSeries DB2 SYSIBM/SYSDUMMY1更新的时间安排

iSeries DB2 SYSIBM/SYSDUMMY1更新的时间安排,db2,ibm-midrange,dayofweek,Db2,Ibm Midrange,Dayofweek,我有一个简单的查询,可以从SYSIBM/SYSDUMMY1中提取DAYOFWEEK来确定是否清除跟踪昨天销售的表 DELETE FROM DAILYSALES WHERE (CASE WHEN (SELECT DAYOFWEEK(CURRENT DATE) FROM SYSIBM/SYSDUMMY1) BETWEEN 3 AND 6 THEN 'YES' ELSE 'NO' END) = 'YES'; 由于在周一周=2运行的报告需要周五周=6、周六周=7、周日周=1 s

我有一个简单的查询,可以从SYSIBM/SYSDUMMY1中提取DAYOFWEEK来确定是否清除跟踪昨天销售的表

    DELETE FROM DAILYSALES WHERE (CASE WHEN (SELECT DAYOFWEEK(CURRENT DATE) 
  FROM SYSIBM/SYSDUMMY1)   
  BETWEEN 3 AND 6 THEN 'YES' ELSE 'NO' END) = 'YES';
由于在周一周=2运行的报告需要周五周=6、周六周=7、周日周=1 sales today-1来计算日期,因此我应该查看第6、7和1天的销售数据似乎是合乎逻辑的

然而,它似乎保留了周四dayofweek=5的销售,而没有在周一上午运行时拉动周日dayofweek=1的销售。这让我相信SYSDUMMY1使用的日期直到午夜后很久才会翻转,即使我们的系统日期在美国东部时间午夜翻转


它在本周剩余时间运行良好,为“昨天”提供了正确的销售数据。当我从SYSIBM.SYSDUMMY1手动运行Select DAYOFWEEKcurrent date时,它总是显示正确的dayofweek。我遗漏了什么?

我在DAILYSALES中没有看到任何列的相关用法

因此

只计算一次,如果进程在星期一运行,将返回2==>否,因此不会删除任何行

我怀疑您想要的不是DAYOFWEEKCURRENT DATE,而是DAYOFWEEKSALESDATE,其中SALESDATE是DAILYSALES表中的一列


最后请注意,SYSIBM.SYSDUMMY1只有一个char1列IBMREQ和一个将该列的值设置为“Y”的行。此表中没有任何内容更新。

我将在星期二和星期五删除整个文件,因此昨天的摘录可以填充该文件。这个逻辑在一周中每天都有效,除了周六。它也可以在周日运行,因为它在周日运行时不会删除文件。案例是确定星期几的子选择,设置为是或否。如果查看整个语句,它只删除设置为是的语句。从DAILYSALES中删除,在3和6之间从SYSIBM/SYSDUMMY1中选择DAYOFWEEKCURRENT日期,然后选择'YES'或'NO'END='YES'嗨,Chris,如果运行此语句,它将从SYSIBM/SYSDUMMY1中提取DAYOFWEEKCURRENT日期-选择DAYOFWEEKCURRENT日期。你可以从这张桌子上拿各种各样的东西。不知道它是如何工作的,但是你想要的系统信息可以从那里得到。如果从SYSIBM/SYSDUMMY1运行SELECT timestamp CURRENT DATE或TIME,它将提取timestamp或TIME,但时间始终填充为0。下面是链接:仅供参考,您可以在SQL语句中直接使用DAYOFWEEK函数。不需要从sysibm/sysdummy1中选择内容。
(CASE WHEN (SELECT DAYOFWEEK(CURRENT DATE) 
  FROM SYSIBM/SYSDUMMY1)   
  BETWEEN 3 AND 6 THEN 'YES' ELSE 'NO' END)