提取BigQuery中字符串(UTC + 4:00),(UTC + 06:00)中C之前和之后的数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提取BigQuery中字符串(UTC + 4:00),(UTC + 06:00)中C之前和之后的数字相关的知识,希望对你有一定的参考价值。
我正在尝试使用SUBSTR并获得--4,+ 06之类的值。从大查询中的(UTC + 4:00),(UTC + 06:00)开始。但是,我看不到FIND函数知道:和,+的位置,因此我可以直接使用SUBSTR(X,FIND(X,“ +”),FIND(X,“;”)-1)。要实现此目的的任何替代解决方案,或者我们需要使用REGEXP函数。
答案
您可以使用REGEXP_EXTRACT(x, r'(\+.*):')
,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'UTC+4:00' x UNION ALL
SELECT 'UTC+06:00'
)
SELECT x, REGEXP_EXTRACT(x, r'(\+.*):')
FROM `project.dataset.table`
有结果
Row x f0_
1 UTC+4:00 +4
2 UTC+06:00 +06
更新更多案例:
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'UTC+4:00' x UNION ALL
SELECT 'UTC+06:00' UNION ALL
SELECT 'UTC' UNION ALL
SELECT 'UTC-03:00'
)
SELECT x, IFNULL(REGEXP_EXTRACT(x, r'UTC(.*):'), '0')
FROM `project.dataset.table`
有结果
Row x f0_
1 UTC+4:00 +4
2 UTC+06:00 +06
3 UTC 0
4 UTC-03:00 -03
以上是关于提取BigQuery中字符串(UTC + 4:00),(UTC + 06:00)中C之前和之后的数字的主要内容,如果未能解决你的问题,请参考以下文章
如何将日期时间字符串上传到“TIME”字段 bigquery