首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CASTing VarChar to DateTime会导致null?

为什么CASTing VarChar to DateTime会导致null?
EN

Stack Overflow用户
提问于 2017-12-12 05:52:14
回答 1查看 1.1K关注 0票数 1

我正在运行MySQL,并尝试将以下行从VarChar转换为DateTime

代码语言:javascript
复制
+-------------------+
|    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')还会生成一列空单元格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-12 06:28:01

问题是,当您转换或转换时,字符串值不是标准的yyyy-mm-dd格式。

如果你运行这个例子,你就会明白我的意思。此示例还提供了将字符串转换为日期的正确方法:

代码语言:javascript
复制
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_test
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47762064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档