How do I set a full date & time sql using java, and not just the date?
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();
Related videos on Youtube
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, 2022Comments
-
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 almost 14 yearsYou 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
andgetTimestamp
are there to make that unnecessary.