【问题标题】:AspenTech IP.21 Data TimezoneAspenTech IP.21 数据时区
【发布时间】:2019-03-04 14:37:34
【问题描述】:

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

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

【问题讨论】:

    标签: aspen


    【解决方案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】:

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

      --something like that :
      WRITE GETDBTIME;
      

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

      SYSTEM 'tzutil /g';
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-15
          • 2016-08-09
          • 2016-12-31
          相关资源
          最近更新 更多