如何在BigQuery中正确转换'2023-02-13 00:00:00.000000000'为日期类型
解决带纳秒的时间字符串转换问题
直接完整转换为时间戳/日期时间
你的目标字符串格式为YYYY-MM-DD HH:MM:SS.fffffffff(包含9位纳秒小数),之前的格式符不匹配导致解析失败。使用BigQuery的PARSE_TIMESTAMP时,需要指定对应9位小数的秒格式符%E9S:
PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S.%E9S', '2023-02-13 00:00:00.000000000')
如果需要转换为DATETIME类型,可在转换后追加类型转换:
CAST(PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S.%E9S', '2023-02-13 00:00:00.000000000') AS DATETIME)
截取日期部分单独转换
如果只需要日期信息,完全可以截取字符串的日期段再转换。用LEFT函数取前10位(YYYY-MM-DD部分):
PARSE_DATE('%Y-%m-%d', LEFT('2023-02-13 00:00:00.000000000', 10))
也可以用SUBSTRING实现:
PARSE_DATE('%Y-%m-%d', SUBSTRING('2023-02-13 00:00:00.000000000', 1, 10))
内容的提问来源于stack exchange,提问作者Oly
相关产品推荐
相关产品推荐

