java.util.Date
, java.util.Timetamp
似乎给许多人带来了极大的困惑。 StackOverflow 中有很多问题,不幸的是我的问题有点扭曲。
有 2 个 JDBC api。他们应该如何表现? RDBMS 之间是否存在一致性?
ResultSet.getTimestamp("dateColumn")
ResultSet.getTimestamp("dateColumn", Calendar.getInstance(tz))
如果有人对Sybase有了解,可以分享一下你的经验吗?
首先,你很困惑java.util
with java.sql
。使用时PreparedStatement#setDate() http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html#setDate%28int,%20java.sql.Date%29 and ResultSet#getDate() http://java.sun.com/javase/6/docs/api/java/sql/ResultSet.html#getDate%28java.lang.String%29, 你需要java.sql.Date http://java.sun.com/javase/6/docs/api/java/sql/Date.html。类似地,当使用PreparedStatement#setTimestamp() http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html#setDate%28int,%20java.sql.Date%29 and ResultSet#getTimestamp() http://java.sun.com/javase/6/docs/api/java/sql/ResultSet.html#getTimestamp%28java.lang.String%29你需要java.sql.Timestamp http://java.sun.com/javase/6/docs/api/java/sql/Timestamp.html.
其次,重要的是要理解这一点java.sql.Date
仅代表date(年、月、日)不多不少。这将被映射到 SQLDATE
字段类型。这java.sql.Timestamp
代表时间戳(年、月、日、时、分、秒、毫秒),与java.util.Date http://java.sun.com/javase/6/docs/api/java/util/Date.html and java.util.Calendar http://java.sun.com/javase/6/docs/api/java/util/Calendar.html做。这将被映射到 SQLTIMESTAMP
or DATETIME
字段类型。
至于时区,当数据库不存储时区信息时您需要它(因此,所有时间戳都以 UTC (GMT) 存储)。然后你可以通过Calendar
其中包含当前时区的信息,以便JDBC驱动程序可以将UTC时间戳调整为符合时区的时间戳。例如,如果是 GMT+1,则 JDBC 驱动程序将在返回之前将时间戳添加一小时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)