声明:本文主要介绍MySQL5.0数据库中的常用时间,不同的版本可能会有差异。
1:分类
DATE 一般用来表示年月日、
TIME用来表示时分秒、
DATETIME一般用来表示年月日时分秒、
TIMESTAMP一般用来表示经常需要改变或者经常更新为系统时间、
YEAR 可以用来只表示年份,占用空间比DATE少。
2:占用字节大小
DATE 4字节
TIME 3字节
DATETIME 8字节
TIMETAMP 4字节
YEAR 1 字节
3:有效范围
DATE 1000-01-01 9999-12-31
TIME -838-59-59 838-59-59
DATETIME 1000-01-01 9999-12-31 23:59:59
YEAR 1901 2155
可以看出每种日期时间类型都有一个有效范围,如果超出这个范围,在默认的
SQLMode 下,系统会提示错误,并将以零值来进行存储。零值根据不同时间日期格式不同会有不同表现。
4 MySQL会给TIMESTAMP 时间戳字段设置默认值为当前系统日期,即使你插入数据为null,也会有一个默认值为当前系统默认的时间戳;MySQL规定只有一列的默认值为TIMESTAMP,如果强制修改,系统会提示错误
TIMESTAMP 回和时区相关,插入日期时,会先转换为本地时区存放,取出来时同样过程。
TIMESTAMP 表示的时间范围较小,为2038年的某一天,如果插入数据库的时间大于这个时间,值会变为0
5 YYYY-MM-DD HH:MM:SS 允许不严格语法:就是任何标点符都可以用作日期部分或者时间部分之间的间隔 eg: 98-12-31 98.12.31表示一样
领取专属 10元无门槛券
私享最新 技术干货