1.数据库中的日期时间类型与Java类中日期时间的对应
- 日期类型用java.sql.Date
- 时间类型用java.sql.Time
- 日期/时间类型用java.sql.Timestamp
范例:在oracle数据库中通过,
select sysday from dual
获取当前时间,在通过ResultSet获取查询结果时,用:getTimestamp(),可以把年月日时分秒都取出来,调用getDate()只能取出年月日,调用getTime()只能取出时分秒。
2.尽量不要调用getString()来获取日期/时间类型的数据
调用getString()获取时间类型的数据,JDBC在内部将日期/时间转换为字符串;但是这个字符串的格式却取决于数据库导致兼容性较差。
3.如何将JDBC的日期/时间类型转换为字符串
java.sql.Timestamp timeStamp = //通过数据库访问获取到该数据
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(timeStamp);
4.select、update或insert时,如果某个字段为日期/时间类型,最好用PreparedStatement
PreparedStatement pstmt = conn.prepareStatement("insert into tab ( begin_date ) values( ?)");
pstmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
pstmt.execute();
5.java.sql.Timestamp如何转换为java.util.Date
java.sql.Timestamp是java.util.Date的子类,不需要做任何转换直接赋值即可:
java.sql.Timestamp ts;
java.util.Date utilDate;
utilDate = ts;
6. java.util.Date转换为java.sql.Timestamp
java.sql.Timestamp ts;
java.util.Date utilDate;
ts.setTime(utilDate.getTime());
7.mysql数据库中的日期时间
- NOW()、SYSDATE()函数以`’YYYY-MM-DD HH:MM:SS’返回当前的日期时间,可以直接存到DATETIME字段中。
比如:select NOW(),SYSDATE(); - CURDATE()、CURRENT_DATE以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
比如:SELECT CURDATE(),CURRENT_DATE; - CURTIME()、CURRENT_TIME以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。
比如:SELECT CURRENT_TIME(),CURRENT_TIME;