当前位置: 首页 > 知识库问答 >
问题:

如果Oracle的dbTimezone不同,如何将所有日期视为UTC?

仲孙宇定
2023-03-14

尽管我使用-duser.timezone=utc运行应用程序,但当我插入到此表并使用rs.gettimestamp(“date_created”)读取此date列时,它比当前UTC预期时间多一个小时:

Expected current UTC: 2020-02-04 20:38:12.0
Actual: 2020-02-04 21:38:12.0

我还注意到select current_date from dual而不是sysdate将产生预期的当前UTC时间。我应该将此列的默认值从sysdate更改为current_date(alter table MY_TABLE modify DATE_CREATED default current_date),还是有其他方法在不更改数据库设置的情况下在Java应用程序中配置时区?

共有1个答案

阴培
2023-03-14

您可以使用:

CREATE TABLE mytable (
  id NUMBER PRIMARY KEY,
  date_created DATE
);

ALTER TABLE mytable MODIFY date_created DEFAULT SYSTIMESTAMP AT TIME ZONE 'UTC';

(系统时间戳将转换为UTC时区,然后隐式强制转换为默认值的DATE数据类型。)

然后:

INSERT INTO mytable( id ) VALUES ( 1 );

SELECT * FROM mytable;
ID | DATE_CREATED       
-: | :------------------
 1 | 2020-02-04 21:57:47
 类似资料:
  • 我想知道南非目前的日期和时间。 如何在甲骨文中检查不同时区的当前时间和日期? 我将在数据表中添加时区值,从中可以得到当前日期和时间? 我有一个国家表,我将根据国家保存时区。现在在程序中,我必须检查其他表格中的一个日期是否为当前日期。So查询:从DUAL中选择时区“非洲/约翰内斯堡”的SYSTIMESTAMP;不会解决我的问题。

  • 问题内容: 我有一个日期,以及如何使所有日期都落在给定日期所属的一周的Java中? 有人可以帮我这个吗。 我正在尝试获取给定日期的星期日期,我已经解释了为什么这个问题不是重复的,请在评论前阅读。 问题答案: 您可以尝试以下方式, 输出值

  • 当更新旧日期到新日期时,我得到 SQL错误:ORA-00932:不一致的数据类型:预期日期获取字符00932。00000-“不一致的数据类型:预期%s得到%s”

  • 我需要使用php将日期时间插入到oracle表中。 我的日期字符串是这种格式: 当我在php中使用这种格式时, $date1=to_date('2013-10-22 08:02:30','YYYY-MM-DD HH24: MI: SS') 我看到oracle表中的数据是PM格式的。这怎么可能?我如何更改to\u日期,以便任何时间12都是上午,任何时间12点及以上都是下午?

  • 问题内容: 假设您网站的用户输入了日期范围。 您需要将此日期发送到服务器进行某些处理,但是服务器希望所有日期和时间都采用UTC。 现在,假设用户位于阿拉斯加,夏威夷或斐济。由于它们所处的时区与UTC完全不同,因此需要将日期范围转换为以下形式: 使用JavaScript Date对象,您如何将第一个“本地化”日期范围转换为服务器可以理解的范围? 问题答案: 该方法返回简化的扩展ISO格式(ISO86

  • 问题内容: 我正在尝试使用Java日期和日历来实现从一个时区到另一个时区的简单转换。我正在尝试运行以下代码 但这仍然返回相同的日期,而不是+1小时…整个问题似乎微不足道,但我找不到任何简单的答案。在此先感谢您的帮助。 问题答案: 当您使用来打印日期时, 返回的是,并且始终以本地时区打印日期。 相反,您可能要使用: