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

问题描述 投票:2回答:3

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

2019年1月22日11:03我想将此字符串转换为日期,所以我应用此查询

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

但我得到的结果为空

mysql sql
3个回答
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


0
投票

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


0
投票

基本上,您首先需要了解要在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')
  • %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

© www.soinside.com 2019 - 2024. All rights reserved.