JDBC 时间问题

先说一下mysql里面常用的时间的类型,一个是date,一个是timestamp。


date类型更偏向于记录年月日,而不记录时分秒。但是timestamp可以记录年月日时分秒。所以精确度更高一些。(个人理解)


先说对于date类型的操作。

从JDBC操作就要考虑把字符串转化为java.util.date类型,然后把util.date类型转化为sql.date类型,最后把sql.date插入数据库。

1, 字符串 --〉util.date

String dateStr = "2014-04-03 12:32" ;
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm") ;
			Date d = null;
			try {
				d = sdf.parse(dateStr);
			} catch (ParseException e) {
				e.printStackTrace();
			}

2, util.date --> sql.date


new java.sql.Date(d.getTime())

3, sql.date --> 数据库


pstmt.setDate(2, new java.sql.Date(d.getTime())) ;

好了,至此一个字符串的时间就被插入到数据库了,但是12时32分的信息没有存入数据库。


下面说说timestamp类型的插入

1, 字符串 --〉util.date是和上一个一模一样的。


2, util.date --> sql.timestamp


new java.sql.Timestamp(d.getTime())

3, sql.timestamp --> 数据库

pstmt.setTimestamp(2, new java.sql.Timestamp(d.getTime())) ;

好了,这次发现数据库里面时间后面多了两个0,因为没有设置秒,所以默认为00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值