我是靠谱客的博主 聪慧心锁,最近开发中收集的这篇文章主要介绍mysql8.0日期类型_Mysql学习->数据类型(日期时间类型),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

日期时间类型

a.如果表示年月日,通常用DATE表示

b.如果表示年月日时分秒,通常用DATETIME表示

c.如果表示时分秒,通常同TIME表示

日期和时间类型

字节

最小值

最大值

DATE

4

1000-01-01

9999-12-31

DATETIME

8

1000-01-01 00:00:00

9999-12-31 23:59:59

TIMESTAMP

4

19700101080001

2038年的某一时刻

TIME

3

-838:59:59

838:59:59

YEAR

1

1901

2155

d.如果只表示年份,可以用YEAR来表示,它比DATE占用更少的空间,一般YEAR有4位和2位的格式,默认为4位的格式,允许的值是1901~2155和0000,2位格式 的基本废弃

e.可以看出每种日期都有一个有效值范围,如果超出这个范围系统会错误提示,并且以零值来进行存储

datatime 0000-00-00 00:00:00

date  0000-00-00

timestamp 00000000000000

time   00:00:00

year       0000

创建date,datetime,time类型的表举例

用now()函数插入当前日期

创建测试表t1,用来测试TIMESTAMP类型

创建的时候系统自动给加上了CURRENT_TIMESTAMP(系统日期),插入一个NULL值

果然就默认显示了当前的系统时间,不过Mysql只给表中的第一个TIMESTAMP字段设置默认值,如果有第二个TIMESTAMP类型,则默认设置为0

在添加一个TIMESTAMP类型的字段

因此mysql中同一个表中只有一列的默认值为current_timestamp,强制修改会报错的哦!!!

f.    TIMESTAMP还有一个特性就是与时区有关,当插入日期时,会先转化为本地时区后存放,而从数据库里面取出时,也同样将日期转化为本地时区后显示,

这样2个不同的用户看到的同一个日期可能是不一样的

创建一个表

当前时区为东八区,结果显示俩个值都是相同的

当修改时区为东九区的时候

此时,id1位timestamp,id2位datetime,两者之间差了1个小时

所以timstamp插入和查询都受当地时区的影响,更能反映出实际的日期,而DATETIME只能反映出插入时当地的时区,其他时区的人查看必然会出现误差

最后

以上就是聪慧心锁为你收集整理的mysql8.0日期类型_Mysql学习->数据类型(日期时间类型)的全部内容,希望文章能够帮你解决mysql8.0日期类型_Mysql学习->数据类型(日期时间类型)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部