我有以下查询来从当前月份的表中获取记录
select *
from
myTable
where
my_date BETWEEN trunc (sysdate, 'mm') AND SYSDATE;
如果记录与当前记录相比具有较低的日期,则此查询有效
示例:如果今天是27/10/2016
并且我有一个具有此日期的记录:28/10/2016
日期28/10/2016
的记录未显示
我使用此格式TO_DATE( '28/10/2016 18:02:44', 'dd/mm/yyyy hh24:mi:ss')
我想显示当前月份的所有记录,即使日期大于实际日期
答案 0 :(得分:3)
或者:
select *
from
myTable
where
my_date BETWEEN trunc (sysdate, 'mm') AND add_months(trunc (sysdate, 'mm'),1)- 1/(24*3600)
或
select *
from
myTable
where
trunc(my_date,'mm') = trunc (sysdate, 'mm')
第一个是sargable,第二个是更具可读性。
答案 1 :(得分:1)
如果您需要当月的日期
trunc(my_date, 'mm') = trunc(sysdate, 'mm')
如果您需要当月和日期的日期:
my_date >= trunc(sysdate, 'mm')