是否有mySQL函数将日期格式从dd.mm.yy转换为YYYY-MM-DD?
例如03.09.13 -> 2013-09-03
。
答案 0 :(得分:33)
由于您的输入是03.09.13
形式的字符串,因此我假设(自今天起是2013年9月3日)它是dd-mm-yy。您可以使用STR_TO_DATE
将其转换为日期:
STR_TO_DATE(myVal, '%d.%m.%y')
然后,您可以使用DATE_FORMAT
格式化回字符串:
DATE_FORMAT(STR_TO_DATE(myVal, '%d.%m.%y'), '%Y-%m-%d')
请注意%y
中的STR_TO_DATE
年份(小写" y")和%Y
中的DATE_FORMAT
(大写" Y") 1}}。小写版本为两位数年份,大写版本为四位数年份。
答案 1 :(得分:4)
使用
SELECT CONCAT(
'20',
SUBSTR('03.09.13', 7, 2),
'-',
SUBSTR('03.09.13', 4, 2),
'-',
SUBSTR('03.09.13', 1, 2))
小提琴demo。
有关您可以在相应的manual page中阅读的格式的更多信息。
提示:如果这是关于非日期时间字段的转换值 - 请更好地使用DATE / DATETIME数据类型。但是,通过字符串函数操作日期是一个坏主意。上面有一个很好的技巧STR_TO_DATE
(不会重复该代码,更新以更好地适应)
答案 2 :(得分:1)
使用内部格式存储日期。您可以使用函数date_format()
将其转换为使用各种格式的字符串。特别是你的:
select date_format(`date`, '%Y-%m-%d')