正在数据库中插入以小时和分钟为单位的日期



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

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();
        } 
    }
}

现在有一个问题。。。它确实成功地插入了它,但当我从日志中选择*时,小时和分钟显示为00:00(使用oracle),所以我猜测我必须使用以下格式更改会话:

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

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

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

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,因为它已经包含了完整的日期和时间。

最新更新