2015-06-25 101 views
0

我需要運行一個批處理作業,它將處理當前月份的第14個月之前創建的數據庫表中的所有記錄。在Java我知道,但我直接通過Oracle查詢命中數據庫服務器,所以我需要匹配記錄創建日期與當前月份的日期14日。如何在Oracle中獲得當前月份的特定日期?

批處理作業可以在任何日期運行,如17,18或29等,但記錄應該只返回當前月14日之前創建的記錄,無法找到任何幫助。

象Java

Calendar date = Calendar.getInstance(); 
date.set(Calendar.DAY_OF_MONTH, 14); 

回答

1

你可以很容易地找到當前本月14日通過使用TRUNC()。這裏是一個例子:

select sysdate, 
     trunc(sysdate, 'mm') + 13 date_to_query_before 
from dual; 

SYSDATE    DATE_TO_QUERY_BEFORE 
--------------------- --------------------- 
25/06/2015 15:23:55 14/06/2015 00:00:00 
+0

謝謝,真的很有幫助。 –

1

可以截斷日期使用的TRUNC正確的格式串月,再加入14

所以:

SELECT TRUNC(SYSDATE,'mm')+13 FROM DUAL; 

給人的本月14日。所以,你可以在1日和14日之間的數據選擇(你說的14日之前)與

SELECT * 
    FROM my_table 
WHERE date_created >= TRUNC(SYSDATE,'mm') 
    AND date_Created < TRUNC(SYSDATE,'mm')+13; 

編輯以修復傻數學錯誤....

+0

謝謝,但這個返回15-JUN-15。 –

+0

Bah - 你說得對。所以+13得到1到14. –

相關問題