mysql字段时间类型的比较


mysql字段的时间类型分为5种:DATE,DATETIME,TIME,TIMESTAMP,YEAR;

下面就分别介绍这几种时间类型的区别


类型字节大小范围格式零值用途
DATE31000-01-01/9999-12-32YYYY-MM-DD0000-00-00日期值
DATETIME81000-01-01 00:00:00/9999-12-32 23:59:59YYYY-MM-DD hh:mm:ss0000-00-00 00:00:00混合日期和时间值
TIME3-838:59:59/838:59:59hh:mm:ss00:00:00时间值
TIMESTAMP41970-01-01 00:00:01/2038-01-19 03:14:07YYYY:MM:DD: hh:mm:ss0000-00-00 00:00:00混合日期和时间值,时间戳
YEAR11901/2155YYYY0000年份值

每个时间类型都有一个有效范围和一个零值,当指定的类型的值超过有效范围时,就会使用零值

YEAR

该类型表示,格式为YYYY

有三种表示方法

  1. 直接使用四位数字或字符串,范围是1901-2155,输入的格式为'YYYY'或YYYY,如输入‘2011’或2011就回直接保存为2011,若超过范围就会表示为0000
  2. 使用两位的字符串表示,如果插入为'00'-'69'则表示为2000-2069,若插入'70-99'则表示为1970-1999.如输入'22'保存为2222,输入88保存为1988.'0'和'00'的效果一样
  3. 使用两位数字,如果插入为00-69则表示为2000-2069,若插入70-99则表示为1970-1999.如输入22保存为2222,输入88保存为1988.如果是0则表示为0000.注意该处和字符串的情况不一样
TIME

该类型表示时:分:秒,尽管时间范围为0~23,但是为了表示某些特殊的时间,mysql将小时的范围扩大了,并且支持负值。

对于TIME类型复制,标准的格式为HH:MM:SS,但不一定要这个格式

如果插入的格式为D HH:MM:SS则类似插入了D*24+HH:MM:SS,比如插入2 23:12:12,相当于71:12:12

如果插入的格式为HHMM或则SS,那么其他位置就赋零值.比如30 相当于00:00:30,比如11:30 相当于11:30:00

mysql中,系统可以自动识别HHMMSS转化为标准格式.我们可以通过CURRENT_TIME()获取当前的TIME

DATE

该类型表示年-月-日,标准格式为YYYY-MM-DD,但是mysql中还支持一些不严谨的格式:比如YYYY/MM/DD等其他的符号来分割

在插入数据的数据的也可以使用YY-MM-DD 年份的转换和上面的YEAR类型的规则一样的

可以使用CURRENT_DATE() 函数获取当前的DATE

DATETIME

该类型表示YYYY-MM-DD hh:mm:ss,可以看出DATETIME类型的结合体.所以赋值的规则时和上面DATETIME的时一样的

TIMESTAMP

该类型表示为YYYY-MM DD hh:mm:ss,取值范围比DATETIME小,因此输入时一定要注意输入值的范围,超过范围会当作零值处理。
哈哈,到2038年后就别用这个类型了

这只是一个简单的区分说明,具体 mysql时间类型的说明 请参考 官方文档

图片描述

扫描关注,查看更多文章,提高编程能力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值