我需要运行一个批处理作业,它将处理数据库表中当前月份的第14个月之前创建的所有记录。在我知道的java中,但我直接通过Oracle查询命中数据库服务器,所以我需要将记录创建日期与当前月份的第14天相匹配。
批处理作业可以在任何日期运行,如17,18或29等,但记录应仅返回在当月14日之前创建的,无法为此找到任何帮助。
就像在java
中一样Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_MONTH, 14);
答案 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;
编辑修复愚蠢的数学错误......