导读
由于项目需要,MySQL格式化日期DATE和DATE_FORMAT出现异常,导致查询的数据不一致。
使用
问题原因
使用date函数和使用date_format函数查询出来的数据不一致,原因是time是datetime类型的数据,后面带时分秒,但是由于格式化的时间(后台传过来的是字符串)没有涉及到时分秒,导致出现查询不一致现象。
date()
SELECT
*
FROM
aa
WHERE
DATE(time)>='2020-08-01' and
DATE(time)<='2020-08-25'
ORDER BY time desc ;
date_format()
SELECT
*
FROM
aa
WHERE
time>=DATE_FORMAT('2020-08-01','%Y-%m-%d') and
time<=DATE_FORMAT('2020-08-25','%Y-%m-%d')
ORDER BY time desc ;
解决办法
格式化日期要么使用date
要么使用DATE_FORMAT('2020-08-01 00:00:00','%Y-%m-%d %H:%i:%s')
格式。
SELECT
*
FROM
aa
WHERE
time>=DATE_FORMAT('2020-08-01 00:00:00','%Y-%m-%d %H:%i:%s') and
time<=DATE_FORMAT('2020-08-25 23:59:59','%Y-%m-%d %H:%i:%s');
ORDER BY time desc ;
END
chaohen
:www.yuque.com/heioky
搞定~