mysql中的timestamp类型到java来应该用啥类型???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的timestamp类型到java来应该用啥类型???相关的知识,希望对你有一定的参考价值。

mysql中的timestamp类型到java来应该用什么类型???mysql有一条输赢是timestamp。
然后,我到java来创建实体类时应该用什么类型??
我到java来创建实体类时应该用什么类型??
我到java来创建实体类时应该用什么类型??
我到java来创建实体类时应该用什么类型??

求你让我在百度上能够问到一次满意的回答吧,告诉我什么类型就好,不要说一大推废话,谢谢。

参照这个就行了,这个对应注入类型。
===========java注入数据库==========
java类型 mysql类型 成功与否
date date yes
date time no
date timestamp no
date datetime no

time date no
time time yes
time timestamp no
time datetime no

timestamp date yes
timestamp time yes
timestamp timestamp yes
timestamp datetime yes
==========end java注入数据库========
总规律,如果A完全包含B,则A可以向B注入数据,否则报错

==========从数据库提取到java ==========
mysql类型 java类型 成与否
date date yes
date time yes --------------缺少的部分使用历元
date timestamp yes --------------缺少的部分使用历元

time date yes --------------缺少的部分使用历元
time time yes
time timestamp yes --------------缺少的部分使用历元

timestamp date yes
timestamp time yes
timestamp timestamp yes

datetime date yes
datetime time yes
datetime timestamp yes
==========end 从数据库提取到java=======
不会出错,缺少的部分使用历元,而不是当前日期时间
参考技术A java.sql
类 Timestamp本回答被提问者采纳
参考技术B Date类型,是在util包的下面, 参考技术C 你看看java.sql包下有哪些类,就知道用什么来表示了追问

你能不能打破常规,不要说废话。直接说答案,行吗??

datetime和timestamp的区别

datetime和timestamp是出现在MySQL和SqlServer数据库中的。

MySQL中datetime和timestamp的区别:

(一)范围不同。

datetime” 以\'YYYY-MM-DD HH:MM:SS\'格式检索和显示DATETIME值。支持的范围为\'1000-01-01 00:00:00\'到\'9999-12-31 23:59:59\'TIMESTAMP值不能早于1970或晚于2037

(二)储存不同。

1,TIMESTAMP

①4个字节储存(Time stamp value is stored in 4 bytes)

②值以UTC格式保存( it stores the number of milliseconds)

③时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

2,datetime

①8个字节储存(8 bytes storage)

②实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)

③与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)


注:TIMESTAMP列的显示格式与datetime列相同。


SqlServer中datetime和timestamp在中用法区别基本都差不多。

datetime :

SqlServer中用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 4 字节存储 base date(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参考日期。不允许早于 1753 年 1 月 1 日的 datetime 值。另外一个 4 字节存储以午夜后毫秒数所代表的每天的时间。 

注:smalldatetime 数据类型存储日期和每天的时间,但精确度低于 datetime。SQL Server 将 smalldatetime 的值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后的分钟数。日期范围从1900 年 1 月 1 日到 2079 年 6 月 6 日,精确到分钟。 

timestamp:
timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。

参考技术A timestamp:占用 4 字节,内部实现是新纪元时间(1970-01-01 00:00:00)以来的秒,那么这种格式在展示给用户的时候就需要做必要的时区转换才能得到正确数据。 参考技术B 想要区分两者的不同,就要了解两者各自的存储特性。
DATETIME:存储的时间范围更大,是从1001年到9999年。DATETIME存储日期和时间会把值封装到YYYYMMDDHHMMSS的整数中,所以跟时区无关。存储的值会占用8个字节的存储空间。
TIMESTAMP:它存储的时间范围小的多,是从1970年到2038年。它存储值只会占用4个字节的存储空间。需要注意的一点是,它会根据时区的不同,表现为不同的时间。举个例子来说吧,如果存储的值是0,那么在格林尼治就会表现为1970-01-01 00:00:00,但是在美国就会表示为1969-12-31 19:00:00。
还有,DATETIME的默认值是NULL,但是TIMESTAMP的默认值是NOT NULL,可以在创建表的时候,为TIMESTAMP列设置默认值CURRENT_TIMESTAMP,列就会在数据插入时自动记录当前的时间。
再多说一句,Mysql提供了两个函数来做UNIX时间戳和日期的相互转化:FROM_UNIXTIME()可以将UNIX时间戳转化为日期;UNIX_TIMESTAMP()可以将日期转化为UNIX时间戳。
纯手打,希望可以帮到你,共同进步。:)
参考技术C 完全不同的两个类型
datetime为时间类型,由日期跟时间两部分组成,精度3.33毫秒
timestamp为varbinary(十六进制)类型,是时间戳值,且在数据库中必须是唯一的
在oracle中,这两个类型是可以转换的,但是在sqlserver中是不可以的
时间戳只是为了标识数据的唯一与改变的,与时间不可互换
参考技术D 一、区别:
1、DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

2、TIMESTAMP列类型提供一种类型,可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。

二、简介
1)TIMESTAMP
1.4个字节储存(Time stamp value is stored in 4 bytes)
2.值以UTC格式保存( it stores the number of milliseconds)
3.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

2)datetime
1.8个字节储存(8 bytes storage)
2.实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)
3.与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)

以上是关于mysql中的timestamp类型到java来应该用啥类型???的主要内容,如果未能解决你的问题,请参考以下文章

mysql的datetime对应java的啥类型,我用date读不出来

flink JDBC 类型转换 java.time.LocalDateTime cannot be cast to java.sql.Timestamp

mysql中timestamp类型 我设置了默认值 为啥java中添加时间类型还是null 在数据库中可以

java Date 转mysql timestamp 秒数不一致

mysql与java类型对应问题

MySQL中timestamp数据类型定义