Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将完整日期字符串转换为日期字符串_Mysql_Sql - Fatal编程技术网

Mysql 将完整日期字符串转换为日期字符串

Mysql 将完整日期字符串转换为日期字符串,mysql,sql,Mysql,Sql,我有一个包含如下字符串的数据库 2019年1月22日11:03 我想将此字符串转换为日期,以便应用此查询 select DATE_FORMAT(STR_TO_DATE('22 Jan 2019 11:03','%d-%m-%Y') ,'%d-%m-%Y'); 但是我得到一个空结果选择STR_TO_DATE('2019年1月22日11:03','%d,%m,%Y') 您只需在str\u to\u date函数中将小写字母m更改为大写字母m select STR_TO_DATE('22 Jan 2

我有一个包含如下字符串的数据库

2019年1月22日11:03

我想将此字符串转换为日期,以便应用此查询

select DATE_FORMAT(STR_TO_DATE('22 Jan 2019 11:03','%d-%m-%Y') ,'%d-%m-%Y');

但是我得到一个空结果

选择STR_TO_DATE('2019年1月22日11:03','%d,%m,%Y')

您只需在
str\u to\u date
函数中将小写字母
m
更改为大写字母
m

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');

基本上,您首先需要了解要在
STR\u to\u DATE()
DATE\u 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')
  • %d日
  • %月
  • %Y年
  • %小时
  • %一分钟
有关格式的详细信息,请参见

现在我们有了从字符串到日期(包括小时和分钟)的完整有效值,我们可以使用正确的

您可以在这里尝试各种示例


这可能会对您有所帮助。您也可以在这里尝试您的示例,Hi@M.Bwe-hehehe,这很快,又上又下。重要的是你们知道怎么做:)干杯!
SELECT DATE_FORMAT(STR_TO_DATE('22 Jan 2019 11:03','%d %M %Y %h:%i') ,'%d-%m-%y %h:%i');