我使用的系统中,日期以字符串形式存储在格式中dd/mm/yyyy。是否可以将其转换yyyy-mm- dd为SELECT查询(以便我可以DATE_FORMAT在其上使用)?MySQL是否具有日期解析功能?
dd/mm/yyyy
yyyy-mm- dd
DATE_FORMAT
目前,我唯一想到的方法是连接一串子字符串,但希望有一个更简单的解决方案。
(不幸的是,由于它是一个元表,因此我无法将其转换为真实的日期字段:同一列包含的只是字符串的不同字段的值。)
这个:
STR_TO_DATE(t.datestring, '%d/%m/%Y')
…将字符串转换为日期时间数据类型。为了确保它以您想要的格式显示,请使用DATE_FORMAT:
DATE_FORMAT(STR_TO_DATE(t.datestring, '%d/%m/%Y'), '%Y-%m-%d')
如果您无法更改原始列上的数据类型,建议创建一个视图,该视图使用该STR_TO_DATE调用将字符串转换为DateTime数据类型。
STR_TO_DATE