如何在BigQuery中将'June 13, 7:23pm EDT'格式字符串转为日期
BigQuery 字符串转日期解决方案
针对你提供的字符串格式June 13, 7:23pm EDT,直接用CAST转日期会报错——因为该字符串包含时间和时区信息,不符合BigQuery默认的日期格式识别规则。可以通过以下方法实现转换:
方法1:默认使用当前年份
先将字符串解析为时间戳,再提取日期部分:
SELECT DATE(PARSE_TIMESTAMP('%B %d, %I:%M%p %Z', 'June 13, 7:23pm EDT')) AS formatted_date;
%B匹配月份全称(如June)%d匹配日期数字%I:%M%p匹配12小时制时间(如7:23pm)%Z匹配时区缩写(如EDT)
执行后会返回格式为2023-06-13的日期(年份取当前系统年份)。如果需要去掉月份和日期的前导零,改为2023-6-13,可以用FORMAT_DATE格式化:
SELECT FORMAT_DATE('%Y-%-m-%-d', DATE(PARSE_TIMESTAMP('%B %d, %I:%M%p %Z', 'June 13, 7:23pm EDT'))) AS formatted_date;
%-m表示去掉月份的前导零%-d表示去掉日期的前导零
方法2:指定固定年份
如果原字符串不含年份,需要手动指定(比如2023年),可以先拼接年份再解析:
SELECT DATE(PARSE_TIMESTAMP('%Y %B %d, %I:%M%p %Z', CONCAT('2023 ', 'June 13, 7:23pm EDT'))) AS formatted_date;
内容的提问来源于stack exchange,提问作者Rashida
相关产品推荐
相关产品推荐

