JDBC中日期时间的处理

1.数据库中的日期时间类型与Java类中日期时间的对应

  1. 日期类型用java.sql.Date
  2. 时间类型用java.sql.Time
  3. 日期/时间类型用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数据库中的日期时间

  1. NOW()、SYSDATE()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。
    比如:select NOW(),SYSDATE();
  2. CURDATE()、CURRENT_DATE以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
    比如:SELECT CURDATE(),CURRENT_DATE;
  3. CURTIME()、CURRENT_TIME以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。
    比如:SELECT CURRENT_TIME(),CURRENT_TIME;
posted @ 2018-07-17 07:50  vicoSong  阅读(3399)  评论(0编辑  收藏