如何用今天计算昨天创建的记录?

How to calculate yesterday created records with today?

你好我想知道如何计算昨天某个时间创建的记录并计算今天产生的记录。 请看我的代码。

   FOR EACH womf_worder OF sfcf_au_ship WHERE womf_worder.word_production_status = "B"
                                 AND womf_worder.word_build_date = DATE(TODAY)    
                                 AND womf_worder.word_build_time GE  tt_shift.shft_start_hour
                                 AND womf_worder.word_build_time LE tt_shift.shft_stop_hour NO-LOCK: 

     IF AVAILABLE womf_worder THEN DO: 
         i = i + 1.         
     END.

tt_shift.shft_start_hour = 06:00:00 和 stop_hour = 23:50:00

这里我的问题是如何用昨天的记录计算出明天将产生的记录。我如何为此使用 DATETIME?

如果数据库中的任何字段是 DATETIME,DATETIME 将非常有用。快速锁定你的例子让我觉得你有单独的日期和时间字段。我不确定 TIME 字段是什么。也许是一个整数或一个字符串?

您不需要在 FOR 循环中进行可用性检查。它用于 FINDS 和可能的 JOINS,其中记录可能在循环中不可用。对于像这样的基本 FOR EACH,只会处理可用的记录。

如果时间确实是一个整数或一个字符串,您的代码可以很好地处理可用性检查的小修复。

   FOR EACH womf_worder OF sfcf_au_ship WHERE womf_worder.word_production_status = "B"
                                 AND womf_worder.word_build_date = DATE(TODAY)    
                                 AND womf_worder.word_build_time GE tt_shift.shft_start_hour
                                 AND womf_worder.word_build_time LE tt_shift.shft_stop_hour NO-LOCK: 

         i = i + 1.         
     END.
for each womf_worder of sfcf_au_ship where 
         womf_worder.word_production_status EQ "B"                      and 
         womf_worder.word_build_date        EQ today - 1                and 
         womf_worder.word_build_time        GE tt_shift.shft_start_hour and
         womf_worder.word_build_time        LE tt_shift.shft_stop_hour  
         no-lock: 

    assign i = i + 1.
end.

备注:

  1. 函数 "today" returns 一个日期类型值,不需要转换 date();
  2. 使用表达式"today - 1";
  3. "for each" 个块不需要 "if avail" 条件,如果 AVM 找到任何记录,它就会消失;