先说一下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