Oracle Date字段的操作(java.util.Date | java.sql.Date | java.sql.Timestamp))

首先展示一下这几个常用的时间类之间的关系


 

一 java.util.Date转化成String

 

java.util.Date udate=Calendar.getInstance().getTime();
Format f = new SimpleDateFormat("yyyy-MM-dd hh24:mm:ss");
System.out.println(f.form

 

二 java.util.Date转化java.sql.Date 

 

 

java.util.Date udate=Calendar.getInstance().getTime();
java.sql.Date sdate = new java.sql.Date(udate.getTime());

 

 

preparedStatement.setDate(1, sdate );  

 
但是这种方式,会造成日期后面的时分秒丢失。插入数据库里显示的是例如 2011-02-16 00:00:00

可以换成: 

 

java.util.Date udate=Calendar.getInstance().getTime();
java.sql.Date sdate=new java.sql.Date(udate.getTime());
java.sql.Timestamp timestamp=new java.sql.Timestamp(sdate.getTime());

 

preparedStatement.setTimestamp(1, timestamp);

 

读取

 

java.util.Date udate=new java.util.Date(resultSet.getTimestamp(1).getTime());

 

 

三 几种时间类的控制台输出效果

 

import java.text.SimpleDateFormat;
import java.util.Calendar;
public class getDate {
	public static void main(String[] args) {
		java.util.Date ud=Calendar.getInstance().getTime();
		System.out.println(ud);
		
		java.util.Date utilDate=new java.util.Date();
		System.out.println(utilDate);
		
		java.sql.Timestamp tsp=new java.sql.Timestamp(utilDate.getTime());
		System.out.println(tsp);
		
		java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
		System.out.println(sqlDate);
		
        java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
        System.out.println(sTime);
            
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss S");
        System.out.println(sdf.format(utilDate));
	}
}

 输出如下:

 

 

Wed Feb 16 14:34:06 CST 2011

Wed Feb 16 14:34:06 CST 2011

2011-02-16 14:34:06.859

2011-02-16

14:34:06

2011-02-16 14:34:06 859

 

四 向数据库插入时间数据的例子

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class Main {
  public static void main(String[] args) throws Exception {
    Connection conn = getConnection();
    Statement st = conn.createStatement();

    st.executeUpdate("create table survey (id int,myDate TIMESTAMP );");
    String INSERT_RECORD = "insert into survey(id, myDate) values(?, ?)";
    
    PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);
    pstmt.setString(1, "1");
    java.sql.Timestamp  sqlDate = new java.sql.Timestamp(new java.util.Date().getTime());
    pstmt.setTimestamp(2, sqlDate);
    
    pstmt.executeUpdate();
    
    ResultSet rs = st.executeQuery("SELECT * FROM survey");

    outputResultSet(rs);

    rs.close();
    st.close();
    conn.close();
  }
  private static void outputResultSet(ResultSet rs) throws Exception {
    ResultSetMetaData rsMetaData = rs.getMetaData();
    int numberOfColumns = rsMetaData.getColumnCount();
    for (int i = 1; i < numberOfColumns + 1; i++) {
      String columnName = rsMetaData.getColumnName(i);
      System.out.print(columnName + "   ");

    }
    System.out.println();
    System.out.println("----------------------");

    while (rs.next()) {
      for (int i = 1; i < numberOfColumns + 1; i++) {
        System.out.print(rs.getString(i) + "   ");
      }
      System.out.println();
    }

  }

  private static Connection getConnection() throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url="jdbc:oracle:thin:@192.168.130.131:1521:ICSS";
    String user="lixiang";
    String password="19870924";
    return DriverManager.getConnection(url,user,password);
  }
}
 

 

贴一个专门讲java<—>数据库时间类型的的网址

http://www.java2s.com/Tutorial/Java/0340__Database/WorkingwithDateTimeandTimestampinJDBC.htm

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值