mysql DATETIME类型

介绍

时间格式为 YYYY-MM-DD hh:mm:ss,默认精确到秒

5.7 之后的版本,在默认的秒精确度上,可以带小数,最多带6位小数,即可以精确到 microseconds (6 digits) precision。

和TIMESTAMP 区别

  • 时间范围不一样,TIMESTAMP 要小很多 ,且最大范围为2038-01-19 03:14:07.999999,到期也不远了。
  • 对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

查询DATETIME类型字段

用DATE_FORMAT()函数格式化输出,返回字符串类型
参见:https://www.malaoshi.top/show_1EF6OJePtppI.html

select DATE_FORMAT(update_time,'%Y-%m-%d')  from goods

作为查询条件

直接查询

SELECT * FROM goods AS a WHERE
'2020-10-02 00:00:00'   <=a.update_time AND a.update_time<= '2020-10-02 23:59:59'

使用STR_TO_DATE() 函数查询

SELECT * FROM goods AS a WHERE
 STR_TO_DATE('2020-10-03 0:0:0','%Y-%m-%d %H:%i:%s')   <=a.update_time AND a.update_time<= STR_TO_DATE('2020-10-03 23:59:59','%Y-%m-%d %H:%i:%s')

使用DATE_FORMAT() 函数查询

SELECT * FROM goods AS a WHERE
 DATE_FORMAT('2020-10-03 0:0:0','%Y-%m-%d %H:%i:%s')   <=a.update_time AND a.update_time<= DATE_FORMAT('2020-10-03 23:59:59','%Y-%m-%d %H:%i:%s')

原文出处:/show_1EF6OJjsCymf.html