ORACLE SQL调整时区的日期,而不强制转换为时间戳或字符



对于ORACLE SQL,ORACLE Database 19c Standard Edition 2 Release 19.0.0.0.0-Production,

是否有一种方法可以将日期(包括日期/时间(从GMT直接转换为当地时间(允许夏令时调整(,就像日期(包括时间(一样?

我见过一些涉及时间戳的解决方案,或者使用时间戳和具有相关时区偏移的字符转换的解决方案。

不过,我想把所有的事情都当作约会。

使用时间戳转换的示例:

SELECT OUR_DATE, from_tz(cast( OUR_DATE as timestamp), 'GMT') at time zone 'US/Eastern'
from OUR_DB.OUR_TBL;

您似乎需要这样的东西(如果Oracle也有"带时间戳的日期"数据类型,这会容易得多(:

...
cast(from_tz(cast(your_date as timestamp), 'UTC') at time zone 'US/Eastern'
as date) as your_column_alias
...

将日期转换为时间戳,这样您就可以给它一个时区(UTC是新的GMT,这是一个单独的问题(,转换到您需要的时区,然后转换回日期-没有时区,没有小数秒。

最新更新