MySQL格式化日期DATE和DATE_FORMAT

603 阅读1分钟

导读


由于项目需要,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


chaohenwww.yuque.com/heioky


搞定~