日期 ETL 的大查询正则表达式
Posted
技术标签:
【中文标题】日期 ETL 的大查询正则表达式【英文标题】:Big Query Regex for Date ETL 【发布时间】:2017-03-01 12:18:07 【问题描述】:我在 Big Query 中导入日期信息的数据,格式为 2/13/2016 、 3/4/2012 等
我想将其转换为日期格式,例如 02-12-2016 和 03-04-2012。 我想使用查询来创建一个新列并使用正则表达式。
我知道匹配 2/4/2012 的第一部分 (2) 的正则表达式类似于
^(\d1)(/|-)
Reg ex 将第二部分与 / 匹配将是
(/)(\d1)(/)
我想知道如何使用这 2 个正则表达式以及 REGEXP_EXTRACT 和 REGEXP_REPLACE 来创建一个具有正确格式的这些日期的新列。
【问题讨论】:
【参考方案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
);
【讨论】:
SELECT PARSE_DATE('%m/%d/%Y', date_string) 为我们工作.. 非常感谢 Elliot 如果这对您有用,请接受(并可选择投票)答案。您可以在*** help center 中阅读更多内容。谢谢!以上是关于日期 ETL 的大查询正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
使用正则表达式在 Pandas 数据框中字符串开头的大括号内去除数字