我正在尝试修改时间为datetime
类型的my_table
select DATE_FORMAT(modifiedtime,'%d-%m-%Y') from my_table
where DATE_FORMAT(modifiedtime,'%d-%m-%Y') between '05-11-2013' and '28-11-2013';
该查询也给了我一些其他记录,这些记录也不在上述日期之间,例如,结果集中有一个记录,记录的日期为
'04-01-2014'
select DATE_FORMAT(modifiedtime,'%d-%m-%Y') from my_table
where DATE_FORMAT(modifiedtime,'%d-%m-%Y')='05-11-2013'
此查询工作正常,并提供给定日期的所有记录
why the first behaves like that?
How can i correct it?
what is the efficient way to implement it?
这样我只能在给定的两个日期之间获取所有记录。
最佳答案
SELECT
DATE_FORMAT(modifiedtime, '%d-%m-%Y')
FROM
my_table
WHERE
modifiedtime BETWEEN STR_TO_DATE('05-11-2013', '%d-%m-%Y') AND STR_TO_DATE('28-11-2013', '%d-%m-%Y');
关于mysql - mysql之间的DATE_FORMAT()给了我bug,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22324128/