跟我一起学习MySQL技术内幕(第五版):(第三章学习日记9)

(补3)(single dog single day 人丑就要多读书)
3.2.6时态(日期时间)数据类型
—————————————————————
MySQL提供了多种存储时态(与时间相关)值的类型:Date,time datetime,timestamp和year.

1.对于数据类型time,datetime和timestampMySQL增加了对小数秒的支持
2.自动把当前时间戳当作初始值并进行更新.在以前的版本里,这些属性只能用于表里的大部分单个timestamp列.现在可以用于任何timestamp列,并且也可以用于datetime列
3.MySQL丢弃了对year(2)的支持,取而代之是允许创建year(4)那样的列

下面是各时态数据类型的取值范围:

    类型名称                        取值范围
 date                        '1001-01-01'~'9999-12-31'
 time                        '-838:59:59[.000000]'~'838:59:59[.000000]
 datetime     '1001-01-01 00:00:00[.000000]~'9999-12-31 23:59:59[.9999]'
 timestamp  '1970-01-01 00:00:00[.000000]~'2038-01-19 03:14:07[.999999]'         
 year                        1901~215

如果要声明包含小数秒部分的时态类型列,则需要把定义写成type_name(fsp)其中type_name为time,datetime,或者timestamp,fsp为小数秒精度.fsp的范围是0~6如果未给定则默认值为0

t1 time(3)
t2 time(6)

时态类型数据的存储空间要求

类型名称       存储要求(5.6.4以前的版本)         存储要求(5.6.4及以后版本)
date          3字节                          3字节
time          3字节                          3字节+fsp的存储要求
datetime      8字节                          5字节+fsp的存储要求
timestamp     4字节                          4字节+fsp的存储要求
year          1字节                          1字节

小数秒部分的存储空间要求

小数秒精度     存储要求               
0            0字节
1,2          1字节
3,4          2字节
5,6          3字节

当为某种日期/时间类型插入非法值时,该类型会把它存储为一个零值.如果想要把非法输入处理为错误,并拒绝接受,需要设置相应的SQL模式.

类型定义     零值
date        '0000-00-00'
time        '00:00:00[.00000]'
datetime    '0000-00-00 00:00:00[.000000]'
timestamp   '0000-00-00 00:00:00[.000000]'
year        0000

MySQL的日期表示为 年-月-日 为满足检索显示要求,可以使用date_format()函数和time_foramt()函数来显示各种格式的日期和时间

在输入日期方面,MySQL的处理方式比较灵活,它可以把两位数的年份转换为四位数输入的年份,并且 对于小于10的月和日提供前导数字0,不过必须是年月日的顺序,对于平常的一些习惯用法,可以使用str_to_date ()函数把非iso格式的字符串转换为iso格式的日期值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值