Sql 如何使用UTC_偏移计算从其他美国时区转换的时间后的值的合计和
我完全迷路了。在将所有时区转换为PST(太平洋标准时间;非DST时UTC_OFFSET=4,DST时UTC_OFFSET=5)后,我试图创建某一天所有值的总和。我想首先转换所有时区(基于UTC_偏移量和日期/时间戳,然后将日期/时间戳转换为日期,并根据日期进行求和/分组。我很难理解如何处理不可避免的DST(尤其是因为它发生在每年不同的日期)。我也不能100%确定我使用UTC_OFFSET的值从其他美国时区得出的PST的数学公式是否正确。我正在尝试将某一PST日的所有值相加,而不管数据从何处提取 下面是从utc转换到指定时区的utc偏移量Sql 如何使用UTC_偏移计算从其他美国时区转换的时间后的值的合计和,sql,oracle,Sql,Oracle,我完全迷路了。在将所有时区转换为PST(太平洋标准时间;非DST时UTC_OFFSET=4,DST时UTC_OFFSET=5)后,我试图创建某一天所有值的总和。我想首先转换所有时区(基于UTC_偏移量和日期/时间戳,然后将日期/时间戳转换为日期,并根据日期进行求和/分组。我很难理解如何处理不可避免的DST(尤其是因为它发生在每年不同的日期)。我也不能100%确定我使用UTC_OFFSET的值从其他美国时区得出的PST的数学公式是否正确。我正在尝试将某一PST日的所有值相加,而不管数据从何处提取
UTC_OFFSET:
4 (EST during DST)
5 (Central Time during DST, EST during NON DST)
6 (Mountain Time during DST, Central time during NON DST)
7 (PST during DST, Mountain Time during non dst)
8 (Pst during non dst)
以下是我拥有的一些样本数据:
During Daylight Savings Time
Value HR UTC
777 18-FEB-19 05.00.00.000000000 AM 4
888 18-FEB-19 06.00.00.000000000 AM 5
1 18-FEB-19 07.00.00.000000000 AM 6
5 18-FEB-19 08.00.00.000000000 AM 7
During Non-Daylight Savings Time
Value HR UTC
777 18-FEB-19 05.00.00.000000000 AM 5
888 18-FEB-19 06.00.00.000000000 AM 6
1 18-FEB-19 07.00.00.000000000 AM 7
5 18-FEB-19 08.00.00.000000000 AM 8
预期产出(两者):
以下是我尝试过的:
select to_Char(HR - ((UTC_OFFSET - 2)/ 24), 'MM/DD/YYYY') as converted_pacific_time
, sum(value_tx)
from value
group by to_Char(HR - ((UTC_OFFSET - 2)/ 24), 'MM/DD/YYYY');
首先创建一个带有时区的
时间戳
:
FROM_TZ(HR, UTC_OFFSET||':00')
然后选择任意时区并按以下方式分组:
select sum(value_tx), FROM_TZ(HR, UTC_OFFSET||':00') at time zone 'UTC'
from value
group by FROM_TZ(HR, UTC_OFFSET||':00') at time zone 'UTC';
或UTC:
select sum(value_tx), SYS_EXTRACT_UTC(FROM_TZ(HR, UTC_OFFSET||':00'))
from value
group by SYS_EXTRACT_UTC(FROM_TZ(HR, UTC_OFFSET||':00'));
select sum(value_tx), SYS_EXTRACT_UTC(FROM_TZ(HR, UTC_OFFSET||':00'))
from value
group by SYS_EXTRACT_UTC(FROM_TZ(HR, UTC_OFFSET||':00'));