1

我正在做一个简单的查询来通过 ODBC 和 OdbcDataReader 检索数据。但是,我无法确定返回数据的时区是什么。我检查了每个文档,没有任何东西告诉我它是什么(UTC 或本地)。我试图在 SQL Plus 中寻找一个设置,但也无法在那里找到一些东西。

有谁知道或知道文档会说什么?谢谢!

4

3 回答 3

3

@Madgui 的时区信息是正确的。不过,我还想提一件事。

在 SQLplus 中,如果您SELECT ISO8601(IP_TREND_TIME)在查询中使用,您将返回一个 ISO8601字符串

如果您在 C# 中做某事并且需要将其作为 UTC 时间,则必须执行以下操作: DateTime.SpecifyKind(DateTime.Parse(datareader["TREND_TIME"].ToString()).ToUniversalTime(), DateTimeKind.Utc)

DateTim.Parse 将作为本地时间返回,只是一个 FYI,这就是您需要使用 .ToUniversalTime() 的原因。此外,将其归类为 UTC 绝不是一个坏主意。

于 2019-03-18T21:26:26.530 回答
1

在 InfoPlus 中使用时区的最佳方法是使用函数 ISO8601(此处为时间戳)。这样可以避免时区转换错误。

于 2020-03-05T12:40:24.673 回答
1

在 AspenTech IP21 SqlPlus 中,每个时间戳都与服务器时区相关。
如果您只对 UTC 偏移量感兴趣(请注意,时区不只是那个),您可以询问服务器其当前时间,并进行计算:

--something like that :
WRITE GETDBTIME;

此外,如果您在服务器上有权限,您可以调用系统命令(检查文档以获取正确的语法)以获取时区的名称:

SYSTEM 'tzutil /g';

结果截图

于 2019-03-05T09:01:25.240 回答