我们正在使用reg_Date和upd_Date的触发器以及所需的数据插入upd_date将插入UTC 0:00时间戳

时间:2016-06-02 11:46:15

标签: oracle timezone-offset

如何将该日期转换为CET时间并从select语句下面获取适当的upd_date。

SELECT MAX(TO_DATE(TO_CHAR(upd_date,'yyyy-mm-dd HH:MI:SS'),'yyyy-mm-dd HH:MI:SS')) AS MAX_UPD_DATE
FROM MY_TABLE
WHERE user_id='SOMEVALUE';

MY_TABLE中的upd_date存储将显示为结果。但我不想要UTC +0:00的时间。我想要CET时间(欧洲/斯德哥尔摩) 请帮助我。

2 个答案:

答案 0 :(得分:0)

您可以使用SWITCHOFFSET()中的SQL将datetimeoffset更改为您喜欢的任何时区。

根据MDN,此更改不会影响原始datetimeoffset。请参见链接here

例如,

SELECT SWITCHOFFSET(column_name, '-05:00') FROM my_table

对于Oracle,您可以使用某些功能。例如, TZ_OFFSET(timezone) Documentation

SELECT FROM_TZ(column_name, 'US/Eastern') AT TIME ZONE 'Europe/London' 

以下是有关AT TIME ZONE子句的更多信息。 link。 如果要查看所有可用的时区,可以运行此查询:

SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES;

我不建议的一件事是添加或减去日期,因为它容易出现更多错误。

答案 1 :(得分:0)

从双重选择SYSTIMESTAMP AT TIME ZONE'CET'; 这对我有用