我:正在尝试使用 STR_TO_DATE 但为啥返回 null?

Posted

技术标签:

【中文标题】我:正在尝试使用 STR_TO_DATE 但为啥返回 null?【英文标题】:I: am trying to use STR_TO_DATE but why does this return null?我:正在尝试使用 STR_TO_DATE 但为什么返回 null? 【发布时间】:2021-05-31 17:36:01 【问题描述】:

INSERT INTO 封面说明(issue_date)值 (STR_TO_DATE('13-May-13','%Y-%m-%d'));

【问题讨论】:

因为五月不是 %m 见dev.mysql.com/doc/refman/8.0/en/… 【参考方案1】:

因为 May 不是 %m,请参阅 https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format - %b 表示月份缩写或 %M 表示完整月份名称

+--------------------------------------+--------------------------------------+--------------------------------------+
| STR_TO_DATE( '13-May-13','%Y-%m-%d') | STR_TO_DATE( '13-May-13','%Y-%b-%d') | STR_TO_DATE( '13-May-13','%Y-%M-%d') |
+--------------------------------------+--------------------------------------+--------------------------------------+
| NULL                                 | 2013-05-13                           | 2013-05-13                           |
+--------------------------------------+--------------------------------------+--------------------------------------+
1 row in set, 1 warning (0.106 sec)

很遗憾你选择了可能作为代表样本..

【讨论】:

【参考方案2】:

根据the documentation on date formatting,%m 是“月份,数字 (00..12)”的代码。

您正在寻找%M,它代表“月份名称(一月..十二月)”

【讨论】:

我想将 13-May-13 转换为 mysql 日期格式,即 Y-m-d 好的,我明白你的意思了。它奏效了。非常感谢 乐于助人!对不起,如果我不够清楚。 或者可能是 %b。

以上是关于我:正在尝试使用 STR_TO_DATE 但为啥返回 null?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 isset($this->var) 在我的 Codeigniter 模型中总是返​​回 false?

mysql STR_TO_DATE() 函数结束字符的问题

SQL 中使用 STR_TO_DATE 的日期转换查询

str_to_date 返回不正确的年份值

str_to_date 更改年份数据 MySQL

MySQL STR_TO_DATE NULL 错误