2017-10-06 89 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

相關問題