mysql错误的日期格式

lp0sw83n  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(327)

这个问题在这里已经有答案了

sql日期格式转换[年月日至年月日(3个答案)
两年前关门了。
您好,我正在尝试在mysql中将dd-mm-yy转换为yy-mm-dd,但我的日期错误,如下所示:

query :  select STR_TO_DATE('01-09-2018','%Y-%m-%d')
   result:  2001-09-20

请帮我解决这个问题。

waxmsbnn

waxmsbnn1#

你好像把解析参数写错了。。。应该指向字符串的参数

SELECT
    STR_TO_DATE('01-09-2018','%d-%m-%Y');
xsuvu9jc

xsuvu9jc2#

您需要以正确的方式使用str\u to\u date函数。它需要一根绳子 str 和格式字符串 format . 格式模式必须与您的输入匹配 str . 在你的例子中,dd-mm-yy有输入,所以你必须使用匹配的格式,也就是说, %d-%m-%Y 请尝试以下操作:

select STR_TO_DATE('01-09-2018','%d-%m-%Y')

其他详细信息:
%d作为数字值的月份日期(01到31)
%m month name作为数字值(00到12)
%y年作为一个数字,4位数的值
请注意 STR_TO_DATE 函数将始终以mysql标准日期格式返回,即 yyyy-mm-dd (如果输入仅为日期)。
如果您想转换成其他格式,那么您将需要使用str\ u to\ u date alongwith date\ u format函数的组合。

tp5buhyn

tp5buhyn3#

请尝试以下操作:格式化字符串在您的情况下是错误的

select STR_TO_DATE('01-09-2018','%d-%m-%Y')

输出:

'2018-09-01'
daolsyd0

daolsyd04#

简单地说,你混淆了参数。在你的例子中,你提供了 %Y-%m-%d 这是你期望的结果。的第二个参数 STR_TO_DATE 应为所提供字符串的格式:

SELECT STR_TO_DATE('01-09-2018','%d-%m-%Y')

默认mysql日期字符串为: %Y-%m-%d ,这是从上面的查询中生成的:

2018-09-01

请参见以下sql fiddle:https://www.db-fiddle.com/f/2411rcvjh6dkzylzxkii39/0

相关问题