Insert timestamp value in PreparedStatement

Problem

A simple table script in Oracle database.


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 ) 
 )

No idea how to insert a timestamp value, e.g. “04/04/2011 14:45:04” into “CREATED_DATE” field, via JDBC PreparedStatement.


String insertTableSQL = "INSERT INTO DBUSER"
		+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
		+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,???);

Solution

Create a method to return current timestamp(java.sql.Timestamp) like this :


private static java.sql.Timestamp getCurrentTimeStamp() {

	java.util.Date today = new java.util.Date();
	return new java.sql.Timestamp(today.getTime());

}

And set the timestamp via preparedStatement.setTimestamp().


String insertTableSQL = "INSERT INTO DBUSER"
	+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
	+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,getCurrentTimeStamp());

4 comments on “Insert timestamp value in PreparedStatement

  1. Sure this is great for getting the current time, but what about getting any other time. Say we wanted to get input from a user or set a time that was in the past.

    Reply
  2. I wonder, why you are not just using the following statement:

    new java.sql.Timestamp(System.currentTimeMillis())

    There is no need to construct a Date object beforehand.

    Reply
  3. This was a great quick help: its conciseness is much appreciated.

    Reply
  4. I am extremely impressed with your writing skills as well as with the layout on your weblog.
    Is this a paid theme or did you customize it yourself?
    Anyway keep up the excellent quality writing, it’s rare to see a great blog like this one these days.

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *