首页 > 解决方案 > Oracle PL/SQL 如何在巴黎打发时间?

问题描述

在欧洲/巴黎(包括夏季/冬季时间)始终获得正确时间的最佳方式是什么?

到目前为止,我正在使用以下查询:

select FROM_TZ(CAST(Sysdate AS TIMESTAMP), 'Europe/Paris') from dual

它在以前的服务器中运行良好。但是,我们已经改变了我们的数据库服务器,现在我们得到了一个小时的差异。

有什么方法可以在巴黎始终获得正确的时间?

谢谢。

标签: oracleplsql

解决方案


SYSDATE以数据库服务器操作系统的时区返回。当您运行时FROM_TZ(CAST(Sysdate AS TIMESTAMP), 'Europe/Paris'),您将时区“附加”Europe/Paris到 SYSDATE。

因此,FROM_TZ(CAST(Sysdate AS TIMESTAMP), 'Europe/Paris')仅当数据库服务器操作系统的时区为 时才正确Europe/Paris

尝试SYSTIMESTAMP AT TIME ZONE 'Europe/Paris'然后结果总是正确的,因为SYSTIMESTAMP返回一个TIMESTAMP WITH TIME ZONE值并且时区已正确转换。


推荐阅读