如何将varchar中的日期时间转换为oracle中的日期以获得一个月的数据



我在oracle表中有数据,其中日期字段Created_Date的格式为01/01/2022 7:00:00 PM,类型为varchar2,我想获得过去一个月的数据,我做了以下查询,该查询不起作用

select *from Mn_Fdd_tbl where to_date(to_char(Created_Date,'DD/MM/YYYY'), 'DD/MM/YYYY' ) > trunc(sysdate)-30;

应该是

select * 
from mn_fdd_tbl
where to_date(created_date, 'dd/mm/yyyy hh:mi:ss pm') > add_months(trunc(sysdate), -1);

因为

  • TO_CHAR中没有任何意义——处理已经是字符串的东西。。。
    • 。。。使用错误的格式模型
  • "上个月":并不是所有的月份都有30天,所以——你的"计算";大约50%的月份都是错误的。改为使用add_months

相关内容

  • 没有找到相关文章

最新更新