我想从 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)
谢谢
答案 0 :(得分:2)
由于逗号的原因,您的日期数据类型看起来像一个字符串。我建议您努力修复数据!日期应使用 date
、timestamp
或相关类型存储。
不过,在您的情况下,您可以解析出日期。我假设你想要:
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)