我试图使用strúu toúu date函数转换列名称timeposted中的一个(varchar,因为有些数据有昨天和今天这样的单词),因为我需要稍后检索3个月的周期,但不知怎么的,它将所有年份更改为2020年,在timeposted中找到任何年份。
例子:
2005年3月9日转换后为2020年3月9日
2011年9月31日转换后为2020年3月31日
我的sql:
select str_to_date(REPLACE(LEFT(timeposted, LOCATE(' ', timeposted)), ',', ''), '%d-%m-%y') from post
我试过日期格式,但问题还是一样。你有什么办法来解决这个问题,以防止任何一年的变化。
编辑:替换用于删除','因为在timeposted中找到的日期是“31-02-2010,04:25 PM”
谢谢,
基思
最佳答案
您的直接问题是由STR_TO_DATE()
中使用的格式字符串不正确引起的。
而不是
'%d-%m-%y'
^^
使用
'%d-%m-%Y'
这里是SQLFiddle演示
正如MarcB已经评论过的,你不需要所有这些字符串操作。就这么做
SELECT STR_TO_DATE(timeposted, '%d-%m-%Y') timeposted
FROM post
这里是SQLFiddle演示
关于mysql - MySQL:str_to_date搞砸了一年,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18643468/