使用小时和分钟在数据库中插入日期

时间:2014-09-24 19:52:30

标签: sql oracle11g

这是我用来在数据库中插入日期的方法:

public void insertLog(Connection con, UserLogs userLogs) throws SQLException{
    PreparedStatement pstmt = null;
    ResultSet rs= null;
    String SQL = "insert into logs values(?,to_date(sysdate,'DD/MM/YYYY HH24:MI'))";

    try {
        pstmt = con.prepareStatement(SQL);
        pstmt.setInt(1, userLogs.getUserId());
        rs = pstmt.executeQuery();
    } catch (SQLException e) {
        System.out.println(e);
    }finally{
        if(rs!=null){
            rs.close();
        }
        if(pstmt!=null){
            pstmt.close();
        } 
    }
}

现在有一个问题......它确实成功插入它但是当我从日志中执行Select *时,小时和分钟显示为00:00(使用oracle)所以我的猜测是我必须改变会话格式:

alter session set nls_date_format='DD/MM/YYYY HH24:MI';

以使显示器正常工作。如何在同一个executeQuery中发送此sql后跟一个插入?

1 个答案:

答案 0 :(得分:1)

问题是您正在使用的插入语句

SELECT to_date(sysdate,'DD/MM/YYYY HH24:MI') FROM dual;

返回

9/24/0014

如果你这样做

SELECT sysdate FROM dual;

它会返回

9/24/2014 14:56:54

没有必要在sysdate上执行to_date,因为它已包含完整的日期和时间。