0

I'm trying to add a date to my SQL database (PostgreSQL), but there seems to be a mismatch, and im suspecting that the date is the culprit. Is it possible to save a java.util.Date in a table where the column is set to DATE?

Ole V.V.
  • 81,772
  • 15
  • 137
  • 161
Mase
  • 85
  • 2
  • 11
  • I figure the database is actually PostgreSQL, and the PGAdmin is the name of the tool you're using to administer the DB, right? – hovanessyan Nov 08 '17 at 17:02
  • Yeah, edited it. – Mase Nov 08 '17 at 17:03
  • For a DATE column, you likely need `java.sql.Date` instead `java.util.Date`. See https://stackoverflow.com/questions/2305973/java-util-date-vs-java-sql-date – david a. Nov 08 '17 at 17:03
  • 1
    how are you persisting the dates in the database (which framework)? – hovanessyan Nov 08 '17 at 17:08
  • in general java.util.date is converted to java.sql.date and this java.sql.Date object type is mapped to a corresponding SQL Date object in the database. Again, in general this should be database vendor agnostic, because they all follow the SQL standard. There are a lot of papers explaining that dates should be saved only in UTF and/or only as BigIntegers (milliseconds) and only converted to real date for displaying purposes (human readable interface). It's a tricky topic (daylight savings, leap seconds, timezones and such). – hovanessyan Nov 08 '17 at 17:16
  • Any reason why you are still using the long outdated `Date` class? [The modern Java date and time API](https://docs.oracle.com/javase/tutorial/datetime/) is so much nicer to work with. I recommend you save a modern `java.time.LocalDate` to your date column. – Ole V.V. Nov 08 '17 at 17:31
  • There are more details in [this answer](https://stackoverflow.com/a/38809770/5772882) and in [the PostgreSQL documentation](https://jdbc.postgresql.org/documentation/head/8-date-time.html). – Ole V.V. Nov 08 '17 at 17:36

1 Answers1

0

For a DATE you need to use java.sql.Date not java.util.Date

gkgkgkgk
  • 707
  • 2
  • 7
  • 26