当前位置: 首页 > 面试题库 >

使用TIMEZONE查询Oracle TIMESTAMP

梁丘安晏
2023-03-14
问题内容

我在类型为的Oracle DB表中有一列TIMESTAMP(6) WITH TIME ZONE。数据行中包含来自不同时区的数据,某些UTC,某些时区的偏移量。

有没有一种方法可以查询Oracle表,使结果始终以UTC的形式返回,并进行了适当的时间转换?是否可以对查询本身执行某些操作,或者以某种方式更改会话?我尝试将会话时区更改为Utc,但这似乎仅影响CURRENT_TIMESTAMP值。

ALTER SESSION SET TIME_ZONE = 'Utc'

例如,如果值存储为:

21-JAN-10 03.28.38.635000000 PM -05:00

查询将返回为

21-JAN-10 08.28.38.635000000 PM Utc

表定义示例

CREATE TABLE "MyDb"."Books"
  (
    "GUID" RAW(32) DEFAULT SYS_GUID(),
     "DATE_CREATED" TIMESTAMP (6) WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
);

问题答案:

您应该能够使用AT TIME ZONE语法

SELECT column_name at time zone 'UTC'
  FROM your_table

IE

SQL> select * from foo;

COL1
---------------------------------------------------------------------------
09-FEB-12 01.48.40.072000 PM -05:00
09-FEB-12 10.49.26.613000 AM US/PACIFIC

SQL> select col1 at time zone 'UTC'
  2    from foo;

COL1ATTIMEZONE'UTC'
---------------------------------------------------------------------------
09-FEB-12 06.48.40.072000 PM UTC
09-FEB-12 06.49.26.613000 PM UTC


 类似资料:
  • 有的时候我们需要频繁的修改手机的时区,使用系统的设置就会比较麻烦, 这个软件的目的是为了简单快速的修改手机的时区。 软件是免费的,已经托管在 git.oschina.net. 功能很简单,欢迎来吐槽。 截图如下:

  • 我正在使用一个android应用程序中的库activeandroid,当我保存一个项目时,我知道它被保存了,因为它得到了一个ID。 救命啊!!!

  • 关于子查询使用 利用子查询进行过滤 列出够物品RGAN01的所有客户。 检索包含物品RGAN01的所有订单编号。 检索具有前一步骤列出的订单编号所有客户ID。 检索前一步骤返回的所有客户ID的客户信息。 mysql> SELECT order_num -> FROM OrderItems -> WHERE prod_id = 'RGAN01'; +-----------+ | or

  • 我一直在努力让tax_query在WP_Query工作。代码如下: 肯定有帖子类型为“谈话”——如果我去掉tax_query部分,正确的帖子显示得很好。有5个谈话使用正确的分类术语“周日谈话”(如果我试图使用ID而不是鼻涕虫,也不起作用)。 奇怪的是,如果我将帖子类型改为“post”,将分类法改为“category”,并省略“field”和“terms”部分,那么它会返回我唯一一篇没有任何术语的帖

  • 问题内容: 我有以下 匹配 查询字符串: 我想它的意思是,但实际上它能执行。 然后我尝试了 术语 查询字符串: 它执行,显示 术语 查询通过数组支持多个OR条件。 我很好奇为什么 匹配 查询不支持通过数组的 OR 条件?并且它不显示任何语法错误。 问题答案: 该查询仅支持要指定的单个字符串值。官方文档中没有明确指定它,但是如果您愿意阅读的源代码,则可以看到,在解析字段时,解析器将跳过标记来分隔数组