2015-06-30 42 views
0

我有一個查詢,基本上從當前日期獲取有關過去2年的信息。Oracle SQL之間的日期,除了某個月

DateTime jodaCurrentDate = new DateTime(); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm"); 
String startingDate = formatter.print(jodaCurrentDate.minusYears(2)); 
String endingDate = formatter.print(jodaCurrentDate); 

"DATE BETWEEN TO_DATE (\'"+ startingDate +"\',\'YYYY-MM-DD HH24:MI\') AND " + 
    "TO_DATE (\'"+ endingDate +"\',\'YYYY-MM-DD HH24:MI\')"; 

是否有可能只檢索某些特定月份(01-02-03-10-11-12)例如?

+0

顯示一些虛擬數據 –

+0

我真的希望你在你的實際代碼中使用綁定變量,而不是用字符串文字構建SQL語句。除了成爲SQL注入攻擊的載體之外,這將會導致性能下降。 –

回答

5

此where子句過濾兩個日期之間的日期,還包括月份過濾器。將some_date替換爲日期列。

where some_date between to_date('01/01/2015','MM/DD/YYYY') and to_date('12/31/2015','MM/DD/YYYY') 
and extract(month from some_date) in (1, 2, 3, 10, 11, 12);