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;

你可能感兴趣的:(DB)