提取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之前和之后的数字的主要内容,如果未能解决你的问题,请参考以下文章

通过 BigQuery 识别缺失的时间戳

如何将日期时间字符串上传到“TIME”字段 bigquery

BigQuery 中的优雅时区转换

如何从bigquery中的字符串中提取子集

在 Bigquery 中看到“数字 + 一个字母 + [逗号或空格]”后提取字符串的正则表达式

无法从 BigQuery 中的时间戳中提取日期