选择最近 13 个月的数据

时间:2021-07-01 10:22:37

标签: sql oracle datetime

我想从 oracle 数据库中选择最近 13 个月的数据。日期显示为“16/04/2020, 00:00:00”。我已经尝试了以下但是它忽略了 where 语句并返回所有数据:

select *
from DM.DATE COMMON_DATE
where
to_date(COMMON_DATE.DATE,'dd/mm/yyyy') <= add_months(trunc(sysdate, 'MON'), -1)

谢谢

1 个答案:

答案 0 :(得分:2)

由于逗号的原因,您的日期数据类型看起来像一个字符串。我建议您努力修复数据!日期应使用 datetimestamp 或相关类型存储。

不过,在您的情况下,您可以解析出日期。我假设你想要:

where to_date(substr(common_date.date, 1, 10), 'DD/MM/YYYY') >= add_months(trunc(sysdate, 'MON'), -13)

编辑:

如果该列已经是 date,则不需要转换它:

where common_date.date >= add_months(trunc(sysdate, 'MON'), -13)