在 MySQL 中解析日期

如何将以下内容转换为用于插入/更新的日期到 MySQL 中的 TIMESTAMPDATE 字段?

How to convert the following into date for insertion/update into a TIMESTAMP or DATE field in MySQL?

'15-Dec-09'

DATE_FORMAT() 用于格式化日期,反之则不然.

DATE_FORMAT() is used to format date, but not the other way around.

推荐答案

您可能想要使用 STR_TO_DATE() 函数.它是 DATE_FORMAT() 函数.

You may want to use the STR_TO_DATE() function. It's the inverse of the DATE_FORMAT() function.

STR_TO_DATE(str,format)

这是 DATE_FORMAT() 函数的反函数.它需要一个字符串 str 和一个格式字符串 format.如果格式字符串包含日期和时间部分,或者 DATETIMESTR_TO_DATE() 返回一个 DATETIME 值> value 如果字符串只包含日期或时间部分.如果从 str 中提取的日期、时间或日期时间值不合法,STR_TO_DATE() 将返回 NULL 并产生警告.

This is the inverse of the DATE_FORMAT() function. It takes a string str and a format string format. STR_TO_DATE() returns a DATETIME value if the format string contains both date and time parts, or a DATE or TIME value if the string contains only date or time parts. If the date, time, or datetime value extracted from str is illegal, STR_TO_DATE() returns NULL and produces a warning.

示例:

SELECT STR_TO_DATE('15-Dec-09', '%d-%b-%y') AS date;
+------------+
| date       |
+------------+
| 2009-12-15 |
+------------+
1 row in set (0.00 sec)

相关文章