好的,所以我试图检索一个字段,我们将调用DATE_OF_ENTRY,字段就是这样。
示例DATE_OF_ENTRY数据
28-NOV-15
因此,我需要在一个脚本中使用此字段,该脚本每月运行两次以提取某些记录。基本上当它是当月的第16天时,我希望从1日到15日的所有记录都被拉起来。当我在下个月1日运行这个脚本时,我想要上个月16日结束时的所有记录。
我现在使用的是什么
WHERE ROUND(DATE_OF_ENTRY,'MM') = ROUND(sysdate-1,'MM') AND DATE_OF_ENTRY < trunc(sysdate)
这个陈述的问题在于它在上一个月的第16个到第1个的第1个工作,但在16日它仍然从上个月获得数据。
感谢任何帮助!
答案 0 :(得分:0)
将TRUNC()
函数与MONTH
参数一起使用将获得该月的第一天。
将TRUNC()
功能与DATE_OF_ENTRY
一起使用将删除TIME
部分。
使用+
运算符将日期添加到DATE
SELECT TRUNC(sysdate, 'MONTH') firstDay,
TRUNC(sysdate, 'MONTH') + 15 Day15,
*
FROM yourTable
WHERE TRUNC(DATE_OF_ENTRY) >= TRUNC(sysdate, 'MONTH')
AND TRUNC(DATE_OF_ENTRY) <= TRUNC(sysdate, 'MONTH') + 15