sql 如何比较存储在 varchar 数据类型中的日期
How sql compares date stored in varchar datatype
如果两个日期都存储在 varchar 中,如何比较两个日期?
我看到一个 table 是几年前写的,其中日期 (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 是如何比较的。
比较日期与日期。使用正确的 date/time 格式存储 date/times。不要将它们存储为字符串!
您的代码无疑会删除行。它是否删除你想要的行是另一个问题。你想要的逻辑好像是:
delete from myTable
where to_date(updated_date, 'DD-MM-YY') < trunc(sysdate) - 7;
如果两个日期都存储在 varchar 中,如何比较两个日期?
我看到一个 table 是几年前写的,其中日期 (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 是如何比较的。
比较日期与日期。使用正确的 date/time 格式存储 date/times。不要将它们存储为字符串!
您的代码无疑会删除行。它是否删除你想要的行是另一个问题。你想要的逻辑好像是:
delete from myTable
where to_date(updated_date, 'DD-MM-YY') < trunc(sysdate) - 7;