嗨,我正在尝试在mysql中将dd-mm-yy转换为yy-mm-dd,但是我得到的日期错误如下:
query : select STR_TO_DATE('01-09-2018','%Y-%m-%d')
result: 2001-09-20
请帮助我解决此问题。
答案 0 :(得分:2)
尝试以下操作:格式字符串在您的情况下是错误的
select STR_TO_DATE('01-09-2018','%d-%m-%Y')
输出:
'2018-09-01'
答案 1 :(得分:1)
您需要以正确的方式使用STR_TO_DATE函数。它需要一个字符串str
和一个格式字符串format
。格式模式必须与您的输入str
相匹配。在您的情况下,您输入了 dd-mm-yy ,因此您必须使用匹配格式,即%d-%m-%Y
请尝试以下操作:
select STR_TO_DATE('01-09-2018','%d-%m-%Y')
其他详细信息:
STR_TO_DATE
函数将始终以MySQL标准日期格式返回,即yyyy-mm-dd
(如果输入仅是日期)。答案 2 :(得分:1)
简单地说,您在混淆参数。在您的示例中,您提供了%Y-%m-%d
,这是您的预期输出。 STR_TO_DATE
的第二个参数应该是您提供的字符串的格式:
SELECT STR_TO_DATE('01-09-2018','%d-%m-%Y')
默认的MySQL日期字符串是:%Y-%m-%d
,这是从上面的查询中得出的:
2018-09-01
请参见以下SQL提琴:https://www.db-fiddle.com/f/2411rcvjH6dKZYLzxkii39/0
答案 3 :(得分:0)
似乎您将解析参数写错了...应该指向字符串的参数
SELECT
STR_TO_DATE('01-09-2018','%d-%m-%Y');