gpt4 book ai didi

尽管格式有效,MySQL str_to_date 仍生成 NULL

转载 作者:行者123 更新时间:2023-11-29 05:25:52 25 4
gpt4 key购买 nike

我正在尝试使用 mysql 中的 str_to_date 函数将文本字段转换为日期。正在运行:

mysql> select Date from sampleData limit 2;
+--------------+
| Date |
+--------------+
| "25-01-2012" |
| "25-01-2012" |
+--------------+

表明我们确实有文本。只是为了验证这里是 describe 表的输出:

mysql> describe sampleData;
+--------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------+------+-----+---------+-------+
| Colors | tinyint(4) | YES | | NULL | |
| Date | text | NO | | NULL | |
+--------------------+------------+------+-----+---------+-------+

现在到了有趣的部分,当我尝试将其转换为日期时:

mysql> select str_to_date(Date, '%d-%m-%Y') from sampleData limit 2;
+-------------------------------+
| str_to_date(Date, '%d-%m-%Y') |
+-------------------------------+
| NULL |
| NULL |
+-------------------------------+

哦,但是 str_to_date 只适用于字符类型而不适用于 TEXT 我想所以我做了一个产生相同结果的转换。我做错了什么?

更新:回应评论

mysql> select AdId, str_to_date(Date, "%d-%m-%Y") from sampleData limit 2;
+----------+-------------------------------+
| AdId | str_to_date(Date, "%d-%m-%Y") |
+----------+-------------------------------+
| 84065013 | NULL |
| 84206047 | NULL |
+----------+-------------------------------+

mysql> select AdId, Date from sampleData limit 2;
+----------+--------------+
| AdId | Date |
+----------+--------------+
| 84065013 | "25-01-2012" |
| 84206047 | "25-01-2012" |
+----------+--------------+

这表明正在处理的是同一行 (ID)。

最佳答案

看起来你也有那些双引号。当您尝试使用双引号对其进行转换时,您会得到 null。

尝试做:

select str_to_date(REPLACE(Date,'"',''), '%d-%m-%Y') 
from tab1 sampleData 2;

sqlfiddle demo

关于尽管格式有效,MySQL str_to_date 仍生成 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20356813/

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