mysql时间类型java_MySQL的5种时间类型的⽐较
⽇期时间类型
占⽤空间
⽇期格式
最⼩值
最⼤值
零值表⽰
datetime
8 bytes
yyyy-mm-dd hh:mm:ss
1000-01-01 00:00:00
9999-12-31 23:59:59
0000-00-00 00:00:00
timestamp
4 bytes
yyyy-mm-dd hh:mm:ss
19700101080001
2038 年的某个时刻
00000000000000
date
4 bytes
yyyy-mm-dd
1000-01-01
9999-12-31
0000-00-00
time
3 bytes
hh:mm:ss
-838:59:59
838:59:59
00:00:00
year
1 bytes
yyyy
1901
2155
0000
datetime
datetime ⽤于表⽰ 年⽉⽇ 时分秒,是 date 和 time 的组合,并且记录的年份(见上表)⽐较长久。如果实际应⽤中有这样的需求,就可以使⽤ datetime 类型。
1、datetime列可以设置为多个,默认可为null,可以⼿动设置其值。
java时间日期格式转换2、datetime列不可设定默认值。
3、datetime列可以变相的设定默认值,⽐如通过触发器、或者在插⼊数据时候,将datetime字段值设置为now(),这样可以做到了,尤其是后者,在程序开发中常常⽤到。
timestamp
timestamp ⽤于表⽰ 年⽉⽇ 时分秒,但是记录的年份(见上表)⽐较短暂,timestamp列必须有默认值,默认值可以为“0000-00-00 00:00:00”,但不能为null。
timestamp 和时区相关,更能反映当前时间。当插⼊⽇期时,会先转换为本地时区后再存放;当查询⽇期时,会将⽇期转换为本地时区后再显⽰。所以不同时区的⼈看到的同⼀时间是 不⼀样的。
表中的第⼀个 timestamp 列⾃动设置为系统时间(current_timestamp)。当插⼊或更新⼀⾏,但没有明确给 timestamp 列赋值,也会⾃动设置为当前系统时间。如果表中有第⼆个 timestamp 列,则默认值设置为0000-00-00 00:00:00。
timestamp 的属性受 mysql 版本和服务器 sqlmode 的影响较⼤。
如果记录的⽇期需要让不同时区的⼈使⽤,最好使⽤ timestamp。
注:⼀般建表时候,创建时间⽤datetime,更新时间⽤timestamp。
date
date ⽤于表⽰ 年⽉⽇,如果实际应⽤值需要保存 年⽉⽇ 就可以使⽤ date。
time
time ⽤于表⽰ 时分秒,如果实际应⽤值需要保存 时分秒 就可以使⽤ time。
year
year ⽤于表⽰ 年份,year 有 2 位(最好使⽤4位)和 4 位格式的年。 默认是4位。如果实际应⽤只保存年份,那么⽤ 1 bytes 保存 year 类型完全可以。不但能够节约存储空间,还能提⾼表的操作效率。
如您对本⽂有疑问或者有任何想说的,请点击进⾏留⾔回复,万千⽹友为您解惑!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论