使用 sysdate 作为参数插入数据库
use sysdate as parameter to insert into database
我有一个将日期值插入测试的 prepareStatement table。
日期值可以是来自参数的值或 NULL。
现在,如果日期值为空,我想在数据库中插入 sysdate。
我不想使用 new java.util.Date().getTime()
,因为我 PC 中的时间可能与数据库中的时间不同。
PreparedStatement pstmt = null;
boolean rs = false;
String sql = "INSERT INTO test (ID, record_date values(?, ?)";
pstmt = DBConnection.getConnection().prepareStatement(sql);
pstmt.setString(1, para1);
if (para2 != null)
pstmt.setDate(2, para2);
else
pstmt.setDate(2, sysdate); // is that possible?
rs = (pstmt.executeUpdate() > 0);
不,这是不可能的。如果你想使用数据库中的日期,你必须使用:
String sql = "INSERT INTO test (ID, record_date values(?, systdate())";
boolean rs = false;
String sql = "INSERT INTO test (ID, record_date) values(?, NVL(?, sysdate()))";
PreparedStatement pstmt = DBConnection.getConnection().prepareStatement(sql);
pstmt.setString(1, para1);
if (para2 == null)
pstmt.setNull(2, Types.Date);
else
pstmt.setDate(2, para2);
rs = (pstmt.executeUpdate() > 0);
我有一个将日期值插入测试的 prepareStatement table。
日期值可以是来自参数的值或 NULL。
现在,如果日期值为空,我想在数据库中插入 sysdate。
我不想使用 new java.util.Date().getTime()
,因为我 PC 中的时间可能与数据库中的时间不同。
PreparedStatement pstmt = null;
boolean rs = false;
String sql = "INSERT INTO test (ID, record_date values(?, ?)";
pstmt = DBConnection.getConnection().prepareStatement(sql);
pstmt.setString(1, para1);
if (para2 != null)
pstmt.setDate(2, para2);
else
pstmt.setDate(2, sysdate); // is that possible?
rs = (pstmt.executeUpdate() > 0);
不,这是不可能的。如果你想使用数据库中的日期,你必须使用:
String sql = "INSERT INTO test (ID, record_date values(?, systdate())";
boolean rs = false;
String sql = "INSERT INTO test (ID, record_date) values(?, NVL(?, sysdate()))";
PreparedStatement pstmt = DBConnection.getConnection().prepareStatement(sql);
pstmt.setString(1, para1);
if (para2 == null)
pstmt.setNull(2, Types.Date);
else
pstmt.setDate(2, para2);
rs = (pstmt.executeUpdate() > 0);