ResultSet.getTimestamp ("date") vs ResultSet.getTimestamp ("date", Calendar.getInstance (tz))
java.util.Date
java.util.Timetamp
ont été semble être à l'origine d'une grande confusion pour de nombreuses personnes. Au sein de StackOverflow il y a beaucoup de questions, Malheureusement, ma question est un peu tordue.
Il y a 2 api JDBC. La façon dont ils devraient s'acquitter? Y avait-il une cohérence entre les SGBDR es?
ResultSet.getTimestamp("dateColumn")
ResultSet.getTimestamp("dateColumn", Calendar.getInstance(tz))
Si quelqu'un a des connaissances dans Sybase, pourriez-vous s'il vous plaît partagez votre expérience?
source d'informationauteur Mohan Narayanaswamy
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous êtes confus
java.util
avecjava.sql
. Lors de l'utilisation dePreparedStatement#setDate()
etResultSet#getDate()
vous avez besoinjava.sql.Date
. De même, lors de l'utilisation dePreparedStatement#setTimestamp()
etResultSet#méthode gettimestamp()
vous avez besoinjava.sql.Timestamp
.Deuxièmement, il est important de comprendre que
java.sql.Date
représente uniquement la date (année, mois, jour) et rien de moins ou de plus. Ce doit être mappé à un SQLDATE
type de champ. Lejava.sql.Timestamp
représente la timestamp (année, mois, jour, heure, minute, seconde, milliseconde), exactement comme lejava.util.Date
etjava.util.Agenda
. Ce doit être mappé à un SQLTIMESTAMP
ouDATETIME
type de champ.Comme pour les fuseaux horaires, vous en avez besoin lorsque la base de données ne stocke pas les informations de fuseau horaire (donc, toutes les dates et heures sont stockés au format UTC (GMT)). Vous pouvez alors passer une
Calendar
dans laquelle contient des informations sur le fuseau horaire actuel, de sorte que le pilote JDBC pouvez ajuster l'UTC horodatage l'horodatage conforme du fuseau horaire. Si c'est pour l'exemple GMT+1, puis le pilote JDBC ajouter une heure à l'horodatage avant de revenir.