sql 如何比较存储在 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;

我执行了这个,它工作正常。

但是很想了解幕后工作,如何比较这些 varchars。

戈登·利诺夫

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP PDO unixODBC FreeTDS SQL Server在存储过程中“将数据类型varchar(max)转换为datetime”

SQL Server代理中的错误:“将varchar数据类型与日期时间数据类型进行对话导致超出范围。”

如何从Hashbytes函数的SHA2_256加密数据类型转换为SQL Server 2012中的varchar(256)

如何按AM / PM升序对存储为varchar数据类型的日期时间进行排序?

如何从日期列在 varchar 数据类型中的日期获取月份。仅供参考使用雪花工具

如何从日期列在 varchar 数据类型中的日期同时获取月份和年份。使用雪花工具

在SQL Server中将varchar数据类型转换为带存储过程错误的小数

sql 将 varchar 数据类型转换为超出范围的日期时间数据类型

Denodo:如何聚合 varchar 数据类型?

如何在SQL Server中存储Point数据类型?

SQL Server文本类型与varchar数据类型

将SQL字段数据类型varchar更改为与已存储的数据一起浮动

如何在SQL Server 2012中将数据类型从日期更改为int?

在存储过程SQL Server中将varchar值'Blue color'转换为数据类型int时转换失败

如何只用日期值,但在MySQL VARCHAR数据类型的列替换文本字符?

“将数据类型 varchar 转换为浮点数时出错”:如何在我的 SQL 查询中解决此错误?

如何仅从SQL Server DateTime数据类型返回日期

错误“将 varchar 数据类型转换为日期时间数据类型导致值超出范围。” 而存储日期格式是 dd-mm-yyyy

在SQL Server中将位数据类型转换为VarChar

Oracle SQL中的firstname(varchar2数据类型)排序问题

Laravel与SQL Server 2008抛出“将varchar数据类型转换为日期时间数据类型导致值超出范围”

如何仅使用varchar(max)数据类型优化具有3.2亿+行的SQL Server表

SQL比较2个日期值(其中一个存储在varchar字段中,并且可能不包含Date数据)

比较Picturebox中的图像与SQL Image数据类型

SQL:比较两个日期时“无法构造数据类型日期”

SQL中的Varchar日期转换

SQL查询中的Varchar日期

如何从唯一的 id 基础 varchar 数据类型中获取价值

如何将数据类型 VARCHAR 更改为 DATETIME?