Oracle数据库中的两种日期类型:date和timestamp

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.lanqiao.util.jdbc.DBUtil;

/**
	Oracle数据库中的日期类型:
	    date:一般仅仅精确到年月日
	    timestamp:精确到年月日时分秒  毫秒     建议采用
	
	如购物网站中订单的生成日期最好保存成timestamp类型。
	
	create table t_test(d timestamp);
*/
public class Test {
	public static void main(String[] args) {
		testAdd();
		Connection conn = DBUtil.getConnection();
		String sql = "select * from t_test";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			while(rs.next()){
				//Timestamp类是java.util.Date的子类
				Timestamp d = rs.getTimestamp(1);
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				System.out.println(sdf.format(d));   //timestamp --> String
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
        
        //向数据库中存储timestamp类型数据
	public static void testAdd(){
		Timestamp timestamp = new Timestamp(System.currentTimeMillis());
		Connection conn = DBUtil.getConnection();
		String sql = "insert into t_test values(?)";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setTimestamp(1, timestamp);
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

你可能感兴趣的:(数据库)