这是我用来在数据库中插入日期的方法:
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后跟一个插入?
答案 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,因为它已包含完整的日期和时间。