sql >> Database teknologi >  >> RDS >> Oracle

ResultSet.getTimestamp(date) vs ResultSet.getTimestamp(date, Calendar.getInstance(tz))

For det første forvirrer du java.util med java.sql . Når du bruger PreparedStatement#setDate() og ResultSet#getDate() , du skal bruge java.sql.Date . Analogt, når du bruger PreparedStatement#setTimestamp() og ResultSet#getTimestamp() du har brug for java.sql.Timestamp .

For det andet er det vigtigt at forstå, at java.sql.Date repræsenterer udelukkende datoen (år, måned, dag) og intet mindre eller mere. Dette skal tilknyttes en SQL DATE felttype. java.sql.Timestamp repræsenterer tidsstemplet (år, måned, dag, time, minut, sekund, millisekund), nøjagtigt som java.util.Date og java.util.Calendar gør. Dette skal tilknyttes en SQL TIMESTAMP eller DATETIME felttype.

Med hensyn til tidszonerne har du brug for det, når databasen ikke gemmer tidszoneinformation (således er alle tidsstempler gemt i UTC (GMT)). Du kan derefter sende en Kalender hvori indeholder information om den aktuelle tidszone, så JDBC-driveren kan justere UTC-tidsstemplet til tidsstemplet, der passer til tidszonen. Hvis det f.eks. er GMT+1, vil JDBC-driveren tilføje en time til tidsstemplet, før han returnerer.




  1. MySQL:udfør en grundlæggende søgning

  2. Forvirret over UPDLOCK, HOLDLOCK

  3. Hvordan opretter man sideinddeling i Codeiginter?

  4. Udfør procedure i en trigger