How do I set a full date & time sql using java, and not just the date?

22,303

Solution 1

Use java.sql.Timestamp and setTimestamp(int, Timestamp). java.sql.Date is date-only, regardless of the type of the column it's being stored in.

Solution 2

Not exactly sure what you need to use, but

ps.setDate();

expects a column type of Date. So it's normalizing it, removing the time.

Try

ps.setTimetamp();
Share:
22,303

Related videos on Youtube

Adam Morris
Author by

Adam Morris

By day: I develop the ASGedge cloud platform for specialty retail real estate management. Currently working with a python / flask / backbone.js & bootstrap / Ubuntu / AWS technology stack. By night: I am a social entrepreneur and host of the podcast, People Helping People.

Updated on July 09, 2022

Comments

  • Adam Morris
    Adam Morris almost 2 years

    I am trying to set a timestamp in my database using java, however in my table all I get is the date, and no time (i.e., looks like "2010-09-09 00:00:00").

    I am using a datetime field on my mysql database (because it appears that datetime is more common than timestamp). My code to set the date looks like this:

    PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
    java.util.Date today = new java.util.Date();
    java.sql.Date timestamp = new java.sql.Date(today.getTime());
    ps.setDate(1, timestamp);
    ps.executeUpdate();
    

    How do I set the date to include the time?

    Edit: I changed the code as per below, and it sets both the date and the time.

    PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
    java.util.Date today = new java.util.Date();
    java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime());
    ps.setTimestamp(1, timestamp);
    ps.executeUpdate();
    
  • ColinD
    ColinD almost 14 years
    You shouldn't deal with string formats for dates/times when saving them to or reading them from a database. JDBC's abstractions such as setTimestamp and getTimestamp are there to make that unnecessary.