这个问题在这里已经有答案了:
sql日期格式转换[年月日至年月日(3个答案)两年前关门了。您好,我正在尝试在mysql中将dd-mm-yy转换为yy-mm-dd,但我的日期错误,如下所示:
query : select STR_TO_DATE('01-09-2018','%Y-%m-%d') result: 2001-09-20
请帮我解决这个问题。
waxmsbnn1#
你好像把解析参数写错了。。。应该指向字符串的参数
SELECT STR_TO_DATE('01-09-2018','%d-%m-%Y');
xsuvu9jc2#
您需要以正确的方式使用str\u to\u date函数。它需要一根绳子 str 和格式字符串 format . 格式模式必须与您的输入匹配 str . 在你的例子中,dd-mm-yy有输入,所以你必须使用匹配的格式,也就是说, %d-%m-%Y 请尝试以下操作:
str
format
%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函数的组合。
STR_TO_DATE
yyyy-mm-dd
tp5buhyn3#
请尝试以下操作:格式化字符串在您的情况下是错误的
输出:
'2018-09-01'
daolsyd04#
简单地说,你混淆了参数。在你的例子中,你提供了 %Y-%m-%d 这是你期望的结果。的第二个参数 STR_TO_DATE 应为所提供字符串的格式:
%Y-%m-%d
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
4条答案
按热度按时间waxmsbnn1#
你好像把解析参数写错了。。。应该指向字符串的参数
xsuvu9jc2#
您需要以正确的方式使用str\u to\u date函数。它需要一根绳子
str
和格式字符串format
. 格式模式必须与您的输入匹配str
. 在你的例子中,dd-mm-yy有输入,所以你必须使用匹配的格式,也就是说,%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函数的组合。
tp5buhyn3#
请尝试以下操作:格式化字符串在您的情况下是错误的
输出:
daolsyd04#
简单地说,你混淆了参数。在你的例子中,你提供了
%Y-%m-%d
这是你期望的结果。的第二个参数STR_TO_DATE
应为所提供字符串的格式:默认mysql日期字符串为:
%Y-%m-%d
,这是从上面的查询中生成的:请参见以下sql fiddle:https://www.db-fiddle.com/f/2411rcvjh6dkzylzxkii39/0