gpt4 book ai didi

mysql - 使用 Between 与列类型 VARCHAR 比较日期

转载 作者:行者123 更新时间:2023-11-30 00:24:56 24 4
gpt4 key购买 nike

我有一个名为 UPDATES 的数据库表,其中插入了一些日志。在此表中,有一个名为 Time 的列。该时间列的类型为 VARCHAR。我别无选择,只能将其设为 VARCHAR,因为存在损坏时间的更新,例如 2013-04-04 00xcdww,有时例如 2013-4-2 以及一些非 ASCII 值。因此,如果列类型为 DATETIME,则该日期时间的插入可能会触发错误。

现在我正处于比较两个日期以获得结果范围的阶段。

所以我的问题是,使用 VARCHAR 可以正确比较日期吗?

正在做:

Date(Time) BETWEEN 2013-03-02 AND 2013-03-02 

或者这会返回无效结果吗?如果确实如此,您能告诉我此查询将返回哪些不在指定范围内的内容吗?

最佳答案

是的,您需要使用 STR_TO_DATE 将 varchar 转换为日期格式

WHERE STR_TO_DATE(Time, '%Y-%m-%d')
BETWEEN '2013-03-02' AND '2013-03-02'


mysql> select STR_TO_DATE('2013-04-04 00xcdww', '%Y-%m-%d') ;
+-----------------------------------------------+
| STR_TO_DATE('2013-04-04 00xcdww', '%Y-%m-%d') |
+-----------------------------------------------+
| 2013-04-04 |
+-----------------------------------------------+

关于mysql - 使用 Between 与列类型 VARCHAR 比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22958844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com