【发布时间】:2019-03-04 14:37:34
【问题描述】:
我正在做一个简单的查询来通过 ODBC 和 OdbcDataReader 检索数据。但是,我无法确定返回数据的时区是什么。我检查了每个文档,没有任何东西告诉我它是什么(UTC 或本地)。我尝试在 SQL Plus 中查找设置,但也无法找到。
有人知道或知道文档会说什么吗?谢谢!
【问题讨论】:
标签: aspen
我正在做一个简单的查询来通过 ODBC 和 OdbcDataReader 检索数据。但是,我无法确定返回数据的时区是什么。我检查了每个文档,没有任何东西告诉我它是什么(UTC 或本地)。我尝试在 SQL Plus 中查找设置,但也无法找到。
有人知道或知道文档会说什么吗?谢谢!
【问题讨论】:
标签: aspen
@Madgui 的时区信息是正确的。不过,我还想提一件事。
在 SQLplus 中,如果您在查询中使用SELECT ISO8601(IP_TREND_TIME),则会返回一个 ISO8601 字符串。
如果您在 C# 中做某事并且需要将其作为 UTC 时间,则必须执行以下操作:
DateTime.SpecifyKind(DateTime.Parse(datareader["TREND_TIME"].ToString()).ToUniversalTime(), DateTimeKind.Utc)
DateTim.Parse 将作为本地时间返回,仅供参考,这就是您需要使用 .ToUniversalTime() 的原因。此外,将其归类为 UTC 绝不是一个坏主意。
【讨论】:
在 InfoPlus 中使用时区的最佳方法是使用函数 ISO8601(此处为时间戳)。这样可以避免时区转换错误。
【讨论】: