MySQL日期数据类型介绍
DATE:
只有年月日这些可以从日历上看到的日期信息,没有时间的部分。MySQL retrieves and displays DATE values in 'YYYY-MM-DD',支持的范围是'1000-01-01' to '9999-12-31'
DATETIME:
日期和时间(时分秒),格式为'YYYY-MM-DD HH:MM:SS',数据范围是'1000-01-01 00:00:00' to '9999-12-31 23:59:59'。
TIMESTAMP:
日期和时间部分都有,这一点与DATETIME一样,不同的是数据范围比DATETIME小,'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC,
DATETIME与TIMESTAMP的区别:
因此TIMESTAMP存储只需4个字节,而DATETIME需要8个字节。MySQL会将TIMESTAMP从当前时区(Time zone)转换成UTC时间进行存储,在从数据库中查询出来之后会自动从UTC转换回当前时区的时间,这一切都是自动的。而DATETIME类型你存入是什么值它就是什么值,不会因为你改变系统的时区而改变。
服务端处理时间的一般策略
我们在写后台代码的时候,可以将日期时间全部转换成统一的UTC格式再将其存入数据库中。时区的处理全部交给前端来处理。