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

时间:2020-02-04 07:57:16

标签: mysql sql

我的数据库包含这样的字符串

2019年1月22日11:03

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

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

但我得到的结果为空

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您要做的就是在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');

Here is a demo

答案 2 :(得分:0)

基本上,您首先需要了解要在STR_TO_DATE()DATE_FORMAT()函数中传递的值

STR_TO_DATE(my date string , current format of my date string)

现在您不正确的做法是,在STR_TO_DATE()中,您传递的格式为'%d-%m-%Y',此格式表示输入字符串的日期和年份之间用连字符分隔,日期和年份值不正确。 / p>

现在,您的日期字符串的实际格式如下

'%d %M %Y %h:%i'

 STR_TO_DATE('22 Jan 2019 11:03','%d %M %Y %h:%i')
  • %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

相关问题