Function 有一个字符串字段,其中包含“(UTC-03:00)-Santiago”,需要在BigQuery中提取时间-03:00并转换为秒
我有如下值,在一个字符串字段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语句中使用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,这将给我秒,但我
预期输出是将该时间值转换为秒,例如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
什么是时区?什么是区段?时区?显示?名称?还为显示的输入数据提供预期输出!