1

好的,所以我正在尝试检索我们将称为 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)

这个语句的问题是它在 1 号工作到上个月的 16 号到月底,但在 16 号它仍然获取上个月的数据。

任何帮助表示赞赏!

4

1 回答 1

0

使用TRUNC()MONTH参数的函数将获得该月的第一天。

使用TRUNC()函数 withDATE_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
于 2015-12-01T18:58:36.907 回答