jdbc - Sybase 如何处理时区?

标签 jdbc timezone sybase sap-ase

我需要了解 Sybase 如何处理和存储时区:

例如,如果 JDBC 客户端位于时区 +1:00,而 Sybase DB 位于时区 +2:00:

  1. 当 JDBC 客户端应用程序写入数据库(例如 INSERT/UPDATE)时,Sybase 将从客户端应用程序接收到的日期时间存储在数据库表中时是否会将其转换为本地时区?
  2. 当 JDBC 客户端应用程序从数据库读取数据时,Sybase 结果集是否包含带有 SELECT 查询的客户端或服务器时区?
  3. 如果数据库服务器后来移动到另一个国家(例如时区 +3:00),Sybase 数据库中存储的日期时间值是否会与移动后插入的日期时间不一致?

考虑到上述情况,我什么时候需要转换日期/时间以及应该将其转换为服务器时区还是客户端时区?

最佳答案

Sybase ASE 将存储客户端应用程序传递给它的任何时间戳。它假设应用程序知道它在做什么,并且不会进行任何转换。

这意味着写入的数据和读取的数据将基于客户端应用程序的时区,而不是数据库服务器的时区。

这也意味着您可以将数据库服务器移动到您喜欢的任何位置,而不会导致数据不一致,因为您使用的是应用程序设置的时间。

关于jdbc - Sybase 如何处理时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554567/

相关文章:

java - 使用mysql数据库的SQL语句语法

java - 为什么当 set 为 null 时 set1 也为 null?

java - java.time.Clock.systemDefaultZone().getZone() 与 java.util.TimeZone.getDefault().toZoneId() 之间有什么区别?

linux - Sybase 16 startserver 由于缺少 libsapcrypto.so 而失败

database - Sybase中的游标有多慢

java - 以非常小的插入将大量数据插入数据库

java - 准备好的语句和SQL注入(inject)

java - Java ZoneId 无法识别美国的哪些短时区 ID?

c# - 将 UTC 转换为东部时区

database - 批量复制 - sybase