如何使用java将当前日期插入oracle数据库

如何使用java将当前日期插入oracle数据库,java,oracle,Java,Oracle,我在oracle中有一个表,其中包含一列日期类型,该列接受以下格式的日期,如何获取当前日期,并使用java将其插入到数据库中 2015年10月28日下午3:15:38插入时只需使用sysdate: Statement stmt = connection.createStatement(); stmt.executeUpdate("insert into some_table (date_column) values (sysdate)"); connection.commit(); 这将使用运

我在oracle中有一个表,其中包含一列日期类型,该列接受以下格式的日期,如何获取当前日期,并使用java将其插入到数据库中


2015年10月28日下午3:15:38

插入时只需使用
sysdate

Statement stmt = connection.createStatement();
stmt.executeUpdate("insert into some_table (date_column) values (sysdate)");
connection.commit();
这将使用运行Oracle的服务器上的“当前时间”:

或者使用客户端的“当前时间”:

PreparedStatement pstmt = connection.prepareStatement(
        "insert into some_table (date_column) values (?)");
pstmt.setTimestamp(1, new java.sql.Timestamp(System.currentTimeMillis());
pstmt.executeUpdate();
connection.commit();

如您所见:这不需要“格式”。这是因为
DATE
(或
timestamp
)列没有格式。显示日期(或时间戳)的应用程序将应用您看到的任何格式。因为日期没有格式,所以插入值时不必担心“格式”。

使用sysdate?或者您特别想在Java端生成日期吗?我将使用Java向DB插入当前时间,但是如果我可以在oracle端使用sysdate,这将非常完美,否则在我的Java文件中也可以。编制的报表。设置字符串(37,“F”);preparedStatement.setTimestamp(4,sysdate);preparedStatement.executeUpdate();这两种解决方案都很好,但是如何在我的java类和preparedStatement中使用第一种(oracle运行的服务器上的sysdate)?它无法识别系统日期。。。准备好的报表。设置字符串(14,服务代码);编制的报表。设置字符串(37,“F”);preparedStatement.setTimestamp(4,sysdate);preparedStatement.executeUpdate()@彼得:简单明了:你不能那样做。如果要使用
sysdate
,则该列不能有参数(
)。@Peter-您不能将sysdate绑定为参数;它是主SQL字符串的一部分,如第一个示例所示。sysdate对Java没有任何意义。你把答案的两个部分弄混了。它成功了,谢谢你的支持。