sql >> Database >  >> RDS >> Oracle

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

Ten eerste verwar je java.util met java.sql . Bij gebruik van PreparedStatement#setDate() en ResultSet#getDate() , je hebt java.sql.Date nodig . Analoog, bij gebruik van PreparedStatement#setTimestamp() en ResultSet#getTimestamp() je hebt java.sql.Timestamp .

Ten tweede is het belangrijk om te begrijpen dat java.sql.Date staat alleen voor de datum (jaar, maand, dag) en niets minder of meer. Dit moet worden toegewezen aan een SQL DATE veld soort. De java.sql.Timestamp staat voor de tijdstempel (jaar, maand, dag, uur, minuut, seconde, milliseconde), precies zoals de java.util.Date en java.util.Calendar doet. Dit moet worden toegewezen aan een SQL TIMESTAMP of DATETIME veldtype.

Wat betreft de tijdzones, u hebt deze nodig wanneer de database geen tijdzone-informatie opslaat (dus alle tijdstempels worden opgeslagen in UTC (GMT)). U kunt dan een Kalender . doorgeven waarin informatie over de huidige tijdzone staat, zodat de JDBC-driver de UTC-tijdstempel kan aanpassen aan de tijdstempel die overeenkomt met de tijdzone. Als het bijvoorbeeld GMT+1 is, zal de JDBC-driver een uur aan de tijdstempel toevoegen voordat hij terugkeert.




  1. Lees elke JSON in de lijst met sleutel-waardeparen (EAV-indeling) in SQL Server

  2. Hoe voer ik een query uit in MYSQL zonder deze naar het binaire logboek te schrijven?

  3. MySQL unieke 1500 varchar veldfout (#1071 - Opgegeven sleutel was te lang)

  4. Sequenties niet beïnvloed door transacties?