如何在Oracle中获取当月的具体日期?

时间:2015-06-25 15:14:40

标签: oracle

我需要运行一个批处理作业,它将处理数据库表中当前月份的第14个月之前创建的所有记录。在我知道的java中,但我直接通过Oracle查询命中数据库服务器,所以我需要将记录创建日期与当前月份的第14天相匹配。

批处理作业可以在任何日期运行,如17,18或29等,但记录应仅返回在当月14日之前创建的,无法为此找到任何帮助。

就像在java

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

2 个答案:

答案 0 :(得分:2)

您可以使用TRUNC()轻松找到当月的第14个月。这是一个例子:

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  

答案 1 :(得分:1)

您可以使用TRUNC中正确的格式字符串将日期截断为月份,然后添加14。

所以:

[6, 8, 10], [8, 10, 12]
...
... and so forth

给出当月的第14个月。因此,您可以选择第1和第14之间的数据(您在14日之前说过)

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

编辑修复愚蠢的数学错误......