我有包含这样的字符串的数据库
2019年1月22日11:03我想将此字符串转换为日期,所以我应用此查询
select DATE_FORMAT(STR_TO_DATE('22 Jan 2019 11:03','%d-%m-%Y') ,'%d-%m-%Y');
但我得到的结果为空
您要做的就是在m
功能中将小写字母M
更改为大写字母str_to_date
。
select STR_TO_DATE('22 Jan 2019 11:03','%d %M %Y');
所以最终查询将是:
select DATE_FORMAT(STR_TO_DATE('22 Jan 2019 11:03','%d %M %Y') ,'%d-%m-%Y');
SELECT STR_TO_DATE('2019年1月22日11:03','%d,%m,%Y');
基本上,您首先需要了解要在STR_TO_DATE()
和DATE_FORMAT()
函数中传递的值
STR_TO_DATE(my date string , current format of my date string)
现在您做得不好,是在STR_TO_DATE()
中传递了'%d-%m-%Y'
格式,此格式表示输入具有连字符分隔的日期月份和年份值,这是不正确的。
现在,您的日期字符串的实际格式如下
'%d %M %Y %h:%i'
STR_TO_DATE('22 Jan 2019 11:03','%d %M %Y %h:%i')
有关格式click的更多信息
现在我们有了从字符串到日期的完整有效值,包括小时和分钟,我们可以使用正确的parameters将此日期转换成我们所需的任何格式。>
SELECT DATE_FORMAT(STR_TO_DATE('22 Jan 2019 11:03','%d %M %Y %h:%i') ,'%d-%m-%y %h:%i');
您可以在这里尝试各种示例
https://www.mysqltutorial.org/tryit/query/mysql-str_to_date/#1