如何将字符串转换为时间戳到bigquery

时间:2020-05-11 18:33:23

标签: date select google-cloud-platform google-bigquery timestamp

我有一个带有字符串列的BQ阶段表,该字符串列包含如下所示的时间戳格式:

2000-01-01 00:00:00.0000000 -08:00
2010-10-01 00:00:00.0000000 -07:00

如何将此字符串加载到另一个以时间戳为类型的BQ表中。

2 个答案:

答案 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