我正在做一个简单的查询,以通过ODBC和OdbcDataReader检索数据。但是,我无法确定返回数据的时区是什么。我检查了每个文档,但没有任何内容告诉我它是什么(UTC或本地)。我试图在SQL Plus中寻找设置,但也无法在其中找到任何内容。
有人知道或知道文档会怎么说吗?谢谢!
答案 0 :(得分:1)
在AspenTech IP21 SqlPlus中,每个与服务器时区相关的时间戳。
如果您只对UTC偏移感兴趣(请注意,时区不仅如此),您可以询问服务器其当前时间,然后执行计算:
--something like that :
WRITE GETDBTIME;
此外,如果您有权使用服务器,则可以调用系统命令(检查文档中的语法是否正确)以使用时区名称:
SYSTEM 'tzutil /g';
答案 1 :(得分:1)
@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也绝不是一个坏主意。
答案 2 :(得分:1)
在InfoPlus中使用时区的最佳方法是使用功能ISO8601(此处为时间戳)。这样可以避免时区转换错误。