2017-10-06 87 views
1

我对查询有困难,为了限制从Progress数据库导出的数据,我必须进行更改。我将“myorderdate”导出为文本文件。但是,我必须将数据限制在2012年以后的订单中。如何为Progress 4GL查询中的每个循环添加日期条件?

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数据库,完全使用数据库。我所要做的只是对代码的小改动,所以如果描述中缺少一些重要信息,请原谅我。

回答

3

使用YEAR功能。 YEAR()函数将输入作为日期并将日期的年份值作为整数返回。

所以,更换

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

有:

YEAR(myorderdate) >= 2012 
+0

这对我有效。非常感谢! – DamianS1987

3

我想这样的代码是:

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

这样,您就不必与评估YEAR()函数循环的每一次迭代。

+0

这是考虑性能时的方法! – Jensd

相关问题