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



如何将该日期转换为 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 时间.我想要欧洲中部时间(欧洲/斯德哥尔摩)请帮我解决这个问题。

您可以使用

SQL中的SWITCHOFFSET()将日期时间偏移量更改为您喜欢的任何时区。

根据 MDN,此更改不会影响原始日期时间偏移量。请参阅此处的链接

例如

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

对于Oracle,您可以使用一些功能。例如 TZ_OFFSET(timezone)文档或

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

以下是有关 At 时区子句的更多信息。 链接。如果要查看所有可用的时区,可以运行以下查询:

SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES;

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

从 DUAL 中选择时区"CET"的 SYSTIMESTAMP;这对我有用

最新更新