如何在Google BigQuery中将指定格式字符串转换为TIMESTAMP?
在BigQuery中将指定日期字符串转换为TIMESTAMP类型的方法
方法1:直接匹配完整格式解析
BigQuery的PARSE_TIMESTAMP函数可根据指定格式字符串解析日期,针对你给出的日期格式,直接匹配完整格式的写法如下:
SELECT PARSE_TIMESTAMP( "%a %b %d %Y %H:%M:%S GMT%z (Coordinated Universal Time)", "Fri Jul 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" ) AS converted_timestamp;
格式符对应说明:
%a:匹配缩写星期名称(如Fri)%b:匹配缩写月份名称(如Jul)%d:匹配两位数字日期(如01)%Y:匹配四位数字年份(如2022)%H:%M:%S:匹配24小时制时分秒(如00:00:00)GMT%z:匹配GMT前缀加时区偏移(如GMT+0000,%z识别+0000这类偏移格式)- 末尾的
(Coordinated Universal Time)是固定文本,直接写入格式字符串完成匹配
方法2:先清理字符串再解析(更灵活)
如果括号内的时区描述可能存在变化(比如不同语言表述),可以先用REGEXP_REPLACE去掉括号部分,再解析简化后的字符串:
SELECT PARSE_TIMESTAMP( "%a %b %d %Y %H:%M:%S GMT%z", REGEXP_REPLACE("Fri Jul 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", r"\s*\(.*\)", "") ) AS converted_timestamp;
这里的正则r"\s*\(.*\)"会匹配从左括号到右括号的所有内容(含前面的空格),替换为空后得到干净的Fri Jul 01 2022 00:00:00 GMT+0000,再用对应格式符解析即可。
两种方法最终都会输出2022-07-01 00:00:00 UTC格式的TIMESTAMP类型结果。
内容的提问来源于stack exchange,提问作者eexxoo
相关产品推荐
相关产品推荐

