小编Jas*_*iti的帖子

Sybase 如何存储日期时间信息?

我们有一个 Sybase 数据库,当前在某些表中存储日期时间值。如果我们将装有 Sybase 数据库的服务器移动到位于另一个时区的另一个国家/地区,数据库中的日期时间值是否会以不同的方式表示?

换句话说,请考虑以下场景:

Sybase 数据库在时区 +2:00 运行。

从我位于时区 +1:00 的 Java 应用程序中,它将 1970 年 1 月 1 日 1:00 写入数据库,这是应用程序时区中的纪元 0。

preparedStatement.setTimestamp(3, new Timestamp(0));
Run Code Online (Sandbox Code Playgroud)

但是,当我使用 SQL Workbench/J 客户端(时区 +1:00)查询数据库时,我看到

1970-01-01 01:00:00
Run Code Online (Sandbox Code Playgroud)

在我的桌子上。事实上,无论我将计算机时钟更改为哪个时区,SQL Workbench/J 客户端始终1970-01-01 01:00:00从数据库中读取数据。

位于时区 +3:00 的另一个 Java 客户端读取的值与

1970-01-01 01:00:00
Run Code Online (Sandbox Code Playgroud)

翻译为纪元-7200000-2:00客户的时区!

那么回到我原来的问题,Sybase 是否将日期时间值存储为字符串或纪元?我没有可以进行实验的免费 Sybase 服务器,那么当我们将服务器移动到另一个时区不同的国家/地区时,我们会发生什么情况呢?

我们使用的类型是“datetime”,例如:

CREATE TABLE "dbo"."whatever" (eventDate datetime NOT NULL);
Run Code Online (Sandbox Code Playgroud)

sybase jdbc java timezone datetime

4
推荐指数
1
解决办法
5455
查看次数

标签 统计

datetime ×1

java ×1

jdbc ×1

sybase ×1

timezone ×1