如果两个日期都存储在 varchar 中,如何在两个日期之间进行比较?
我遇到了一个多年前写的表格,其中日期 (DD-MM-YY) 以 varchar 格式存储
updated_date varchar(255)
有一个为删除操作编写的脚本,如下所示
(温度变量)-
temp_date_tocompare varchar2(255) :=to_char(sysdate-7, 'YYYY-MM-DD')
delete from myTable
where updated_date < temp_date_tocompare;
我执行了这个,它工作正常。
但是很想了解幕后工作,如何比较这些 varchars。
将日期作为日期进行比较。使用正确的日期/时间格式存储日期/时间。不要将它们存储为字符串!
您的代码无疑会删除行。它是否删除您想要的行是另一个问题。你想要的逻辑似乎是:
delete from myTable
where to_date(updated_date, 'DD-MM-YY') < trunc(sysdate) - 7;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句