Datetime 如何为进行中的每个循环4GL查询添加日期条件?

Datetime 如何为进行中的每个循环4GL查询添加日期条件?,datetime,for-loop,comparison,openedge,progress-4gl,Datetime,For Loop,Comparison,Openedge,Progress 4gl,我在查询时遇到困难,我必须更改以限制从进度数据库导出的数据。我将“myorderdate”导出到文本文件。但是,我必须将数据限制为2012年之后的订单 OUTPUT STREAM s1 TO VALUE(exportFileStringDirectory). FOR EACH poTable NO-LOCK WHERE ponum = 1 AND /* this doesn't work -->*/ /*myorderdate.YEAR >= DATE("2012").YEAR

我在查询时遇到困难,我必须更改以限制从进度数据库导出的数据。我将“myorderdate”导出到文本文件。但是,我必须将数据限制为2012年之后的订单

OUTPUT STREAM s1 TO VALUE(exportFileStringDirectory).
FOR EACH poTable NO-LOCK WHERE
 ponum = 1 AND
 /* this doesn't work -->*/
 /*myorderdate.YEAR >= DATE("2012").YEAR AND*/
 conum = 1:

 PUT STREAM s1 UNFORMATTED
    ISO-DATE(myorderdate)
 SKIP. 
END.
OUTPUT STREAM s1 CLOSE.
我不熟悉4GL数据库的开发,也不熟悉数据库。我所要做的就是对代码做一个小改动,因此如果描述中缺少一些重要信息,请原谅。

使用年份函数。函数的作用是:将输入作为日期,并以整数形式返回日期的年份值

那么,替换

myorderdate.YEAR >= DATE("2012").YEAR
与:

使用年份函数。函数的作用是:将输入作为日期,并以整数形式返回日期的年份值

那么,替换

myorderdate.YEAR >= DATE("2012").YEAR
与:


我会这样编码:

FOR EACH poTable NO-LOCK WHERE
 ponum = 1 AND conum = 1 and 
 myorderdate >= 1/1/2012:

这样,您就不必在循环的每次迭代中都对YEAR()函数求值。

我将这样编写它:

FOR EACH poTable NO-LOCK WHERE
 ponum = 1 AND conum = 1 and 
 myorderdate >= 1/1/2012:
这样可以避免在循环的每次迭代中计算YEAR()函数