我正在运行MySQL,并尝试将以下行从VarChar转换为DateTime
+-------------------+
| review_date |
+-------------------+
| May 24, 2015 |
| June 3, 2013 |
| December 19, 2003 |
+-------------------+我已经尝试过CAST(review_date as DATETIME),但是当我在SELECT语句中测试它时,它会产生一个空值的列。
但是,我也尝试了CONVERT(DATETIME, review_date, 107),结果是:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'review_date, 107) at line 3
我以前没有转换为日期时间,但是我不能理解上面的语句是如何偏离文档的,或者为什么它们不能工作。
我使用以下语法为列创建:review_date varchar(255) DEFAULT NULL。并且STR_TO_DATE(review_date, '%m/%d/%Y')还会生成一列空单元格。
发布于 2017-12-12 06:28:01
问题是,当您转换或转换时,字符串值不是标准的yyyy-mm-dd格式。
如果你运行这个例子,你就会明白我的意思。此示例还提供了将字符串转换为日期的正确方法:
SELECT
CAST(review_date AS DATETIME) -- gives null due to incorrect format
, STR_TO_DATE(review_date, '%M %d, %Y') -- gives correct date
, CAST('2015-05-24' AS DATE) -- gives date due to correct format
FROM
date_testhttps://stackoverflow.com/questions/47762064
复制相似问题