sql如何比较存储在varchar数据类型中的日期

时间:2019-06-14 11:04:05

标签: sql oracle date comparison varchar

如果两个日期都存储在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;

我运行了这段代码,效果很好。

我的问题是如何?在后台进行什么处理。

1 个答案:

答案 0 :(得分:0)

比较日期为日期。使用正确的日期/时间格式存储日期/时间。不要将它们存储为字符串!

您的代码无疑将删除行。是否删除所需的行是另一个问题。您想要的逻辑似乎是:

delete from myTable
    where to_date(updated_date, 'DD-MM-YY') < trunc(sysdate) - 7;