码迷,mamicode.com
首页 > 数据库 > 详细

Java日期时间API系列2-----Jdk7及以前的日期时间类在mysql数据库中的应用

时间:2019-12-14 00:10:01      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:处理   字段   com   mysql数据库   插入   数据   适合   jdk7   输出   

1.java中与数据库相关的时间类

java提供与mysql方便交互的三种数据类型:

java.sql.Date

java.sql.Time

java.sql.Timestamp

它们都是继承java.util.Date,算是对该类的精简,很适合跟数据库交互。

2.MySQL 中的日期和时间类型

日期和时间类型 字节 最小值 最大值
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

 

3.java中类与mysql中类型的匹配

java类型   mysql类型

timestamp datetime

timestamp timestamp

timestamp date 保留日期部分

timestamp time 保留时间部分

date         date

time         time

4.mysql中datetime与timestamp的区别

a)DATETIME的默认值为null,5.6版本之后,也能用CURRENT_TIMESTAMP;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

b)DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

c)两者的存储方式不一样 ,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

d)两者所能存储的时间范围不一样:

timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;

datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

所以,如果要适用广泛的,建议适用DATETIME。


参考:https://www.jianshu.com/p/937656cb269b

      https://blog.csdn.net/z3278221/article/details/81000876

 

 

 

Java日期时间API系列2-----Jdk7及以前的日期时间类在mysql数据库中的应用

标签:处理   字段   com   mysql数据库   插入   数据   适合   jdk7   输出   

原文地址:https://www.cnblogs.com/xkzhangsanx/p/12037616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!