日期ETL的大查询正则表达式

时间:2017-03-01 12:18:08

标签: regex google-bigquery

我的数据包含在Big Query中导入的日期信息,格式为2/13 / 2016,3 / 4/2012等

我想将其转换为日期格式,如02-12-2016和03-04-2012。 我想使用Query创建一个新列并使用正则表达式。

我知道匹配2012年2月4日第一部分(2)的正则表达式将类似

^(\ d {1})(/ | - )

注册ex以匹配第二部分/将

(/)(\ d {1})(/)

我想知道如何使用这两个正则表达式以及REGEXP_EXTRACT和REGEXP_REPLACE来创建一个具有正确格式的这些日期的新列。

1 个答案:

答案 0 :(得分:1)

转换为DATE类型列可能最简单。例如:

#standardSQL
SELECT
  PARSE_DATE('%m/%d/%Y', date_string) AS date
FROM (
  SELECT '2/13/2016' AS date_string UNION ALL
  SELECT '3/4/2012' AS date_string
);

另一个选项 - 如果您想将日期保留为字符串 - 是使用REPLACE

#standardSQL
SELECT
  REPLACE(date_string, '/', '-') AS date
FROM (
  SELECT '2/13/2016' AS date_string UNION ALL
  SELECT '3/4/2012' AS date_string
);