Автор оригинала: mkyong.
Проблема
Простой табличный скрипт в базе данных Oracle.
CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NULL, CREATED_DATE DATE NOT NULL, PRIMARY KEY ( USER_ID ) )
Понятия не имею, как вставить значение метки времени, например ” 04/04/2011 14:45:04 ” в поле ” CREATED_DATE “, через JDBC PreparedStatement.
String insertTableSQL = "INSERT INTO DBUSER" + "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES" + "(?,?,?,?)"; preparedStatement = dbConnection.prepareStatement(insertTableSQL); preparedStatement.setTimestamp(4,???);
Решение
Создайте метод для возврата текущей метки времени ( java.sql. Отметка времени
) вот так:
private static java.sql.Timestamp getCurrentTimeStamp() { java.util.Date today = new java.util.Date(); return new java.sql.Timestamp(today.getTime()); }
И установите метку времени с помощью PreparedStatement.settimestamp()
.
String insertTableSQL = "INSERT INTO DBUSER" + "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES" + "(?,?,?,?)"; preparedStatement = dbConnection.prepareStatement(insertTableSQL); preparedStatement.setTimestamp(4,getCurrentTimeStamp());
Оригинал: “https://mkyong.com/jdbc/how-to-insert-timestamp-value-in-preparedstatement/”