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

mysql中的timestamp类型到java来应该用什么类型?,第1张

参照这个就行了,这个对应注入类型

===========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 datetimeyes

==========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 timestampyes --------------缺少的部分使用历元

timestamp date yes

timestamp time yes

timestamp timestamp yes

datetime date yes

datetime time yes

datetimetimestamp yes

==========end 从数据库提取到java=======

不会出错,缺少的部分使用历元,而不是当前日期时间

MySql的时间类型有 Java中与之对应的时间类型

datejava.sql.Date

datetimejava.sql.Timestamp

timestamp java.sql.Timestamp

timejava.sql.Time

yearjava.sql.Date

Java代码

//获得系统时间

java.util.Date date = new java.util.Date()

//将时间格式转换成符合Timestamp要求的格式

String nowTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)

java.sql.Timestamp ts_date = java.sql.Timestamp.valueOf(nowTime)

// ......

preparedStatement.setTimestamp(1, ts_date )

// ......

java中有date和datetime,mysql中也有date和datetime,这里我们来说说mysql中的date和datetime。

1 mysql中的date和datetime

1.1 DATETIME

类型可用于需要同时包含日期和时间信息的值。MySQL 以:

‘YYYY-MM-DD HH:MM:SS’

格式检索与显示 DATETIME 类型。支持的范围是:

‘1000-01-01 00:00:00’

‘9999-12-31 23:59:59’。

(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)

1.2 DATE

类型可用于需要一个日期值而不需要时间部分时。MySQL 以

‘YYYY-MM-DD’

格式检索与显示DATE值。支持的范围则是

‘1000-01-01’

‘9999-12-31’。

2 与java数据的交互

能看出来mysql中的date和datetime区别还是挺大的,date没有保存时间。但是java中的date(java.util.Date)记录的还是挺细的,日期和时间都可以记下来,那么现在问题来了,如果想在mysql中存储日期和时间,也就是用datetime,而在数据中应该如何对应呢?

我使用hibernate测了一下,发现当把mysql数据库中设置了datetime,反向工程生成的hbm.xml文件中,使用的是timestamp,如下:

<property name="Publishdate" column="publishdate" type="timestamp" not-null="false" length="10" />1

反向生成java的pojo时,生成的还是Date。

由此可见对于mysql中datetime,与java中的date,如果要使二者正确交互,中间要使用timestamp。

如果要在JAVA中直接插入MySql的datetime类型,则可以使用:

Date date = new Date()

Timestamp timeStamp = new Timestamp(date.getTime())12

再用setTimestamp()设置数据库中的“日期+时间”。

这样放入数据库的就是“yyyy-mm-dd hh:mm:ss”格式的数据。

注意,mysql中如果使用date而不是datetime是保存不下“日期+时间”的,只能保存“时间”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5902525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存