2016-09-27 116 views
0

我希望DEP_DATE匹配PERIOD_TO 1個月上10,使用毫米-YY匹配(天都不同)的Oracle SQL日期格式-1月

DEP_DATE = JUL-16以匹配Period_to = JUN-16

在我的Where子句

... 和TO_CHAR(itny.DEP_DATE, 'MM-YY')= TO_CHAR(xch.PERIOD_TO, 'MM-YY') - 1

我可以匹配確切的月份,但它不喜歡在period_to的末尾加上-1來得到前一個月份。

我已經嘗試過各種to_date但沒有快樂。

謝謝大家。

回答

2


嗨,
您可以使用下面的邏輯,

(trunc(itny.DEP_DATEe,'mm'),-1) 

mm -1派生你以前的m onth。將此語法應用於您的要求。需要將你的格式轉換爲日期,只需將日期值作爲一些默認值

2

一種方法是格式化爲一個字符串之前減去一個月:

to_char(itny.DEP_DATE, 'mm-yy') = to_char(add_months(xch.PERIOD_TO, -1), 'mm-yy') 

另一種方法是隻使用日期比較:

itny.DEP_DATE >= add_months(trunc(xch.PERIOD_TO, 'MM'), -1) and 
itny.DEP_DATE < trunc(xch.PERIOD_TO, 'MM') 
+0

謝謝你們兩個,我用這個... to_char(add_months(xch.PERIOD_TO,+1),'mm-yy'),它工作正常完美。 –