Function 有一个字符串字段,其中包含“(UTC-03:00)-Santiago”,需要在BigQuery中提取时间-03:00并转换为秒

Function 有一个字符串字段,其中包含“(UTC-03:00)-Santiago”,需要在BigQuery中提取时间-03:00并转换为秒,function,time,google-bigquery,Function,Time,Google Bigquery,我有如下值,在一个字符串字段timezone\u name中 UTC-03:00-圣地亚哥 UTC-04:00加拿大大西洋时间 UTC+05:30新德里孟买加尔各答钦奈 UTC 我可以使用以下代码提取值-03:00、-04:00、+05:30: 当STRPOStimezone_名称+=5,然后子时区_名称为5,6时的情况 当STRPOStimezone_name,-=5时,则子时区_name,5,6 其他“0” 任何直接将时间值转换为秒的方法,相信我可以将这个小时乘以86400,这将给我秒,但我

我有如下值,在一个字符串字段timezone\u name中

UTC-03:00-圣地亚哥 UTC-04:00加拿大大西洋时间 UTC+05:30新德里孟买加尔各答钦奈 UTC

我可以使用以下代码提取值-03:00、-04:00、+05:30:

当STRPOStimezone_名称+=5,然后子时区_名称为5,6时的情况 当STRPOStimezone_name,-=5时,则子时区_name,5,6 其他“0”

任何直接将时间值转换为秒的方法,相信我可以将这个小时乘以86400,这将给我秒,但我想知道大查询中的任何函数,我可以直接在case语句中使用


预期输出是将该时间值转换为秒,例如05:30应转换为19800,-04:00应转换为-14400

#standardSQL
SELECT timezone_name, 
  CASE REGEXP_EXTRACT(timezone_name, r'UTC([+-])') 
    WHEN '-' THEN -1
    ELSE 1 
  END * TIME_DIFF(
    CAST(CONCAT(REGEXP_EXTRACT(timezone_name, r'UTC[+-]([:0-9]*)'), ':00') AS TIME), 
    '00:00:00', 
    SECOND
  ) AS offset_in_seconds
FROM `project.dataset.table`   
如果要应用于问题中的样本数据,则输出为

Row timezone_name                                       offset_in_seconds    
1   (UTC-03:00) - Santiago                              -10800   
2   (UTC-04:00) Atlantic Time (Canada)                  -14400   
3   (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi     19800    
什么是时区?什么是区段?时区?显示?名称?还为显示的输入数据提供预期输出!