我有一个带有字符串列的BQ阶段表,该字符串列包含如下所示的时间戳格式:
2000-01-01 00:00:00.0000000 -08:00
2010-10-01 00:00:00.0000000 -07:00
如何将此字符串加载到另一个以时间戳为类型的BQ表中。
答案 0 :(得分:1)
时间戳的规范形式为YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.DDDDDD]][time zone]
,并且最多只能包含六个小数位(微秒精度)
因此,如果您的数据实际上有6位(而不是7位)-您可以使用以下任一位
PARSE_TIMESTAMP('%F %H:%M:%E6S %Ez', ts)
或
PARSE_TIMESTAMP('%F %H:%M:%E*S %Ez', ts)
答案 1 :(得分:0)
您的字符串看起来像合法的文字时间戳字符串,所以cast()
不能正常工作吗?
cast(my_string_col as timestamp) my_timestamp_col
否则,您需要parse_timestamp()
:
parse_timestamp(''%Y-%m-%d %H:%M:%E#7 %Ez', my_string_col) my_timestamp_col