将字符串列转换为BigQuery中的时间戳?

时间:2019-02-27 03:05:43

标签: mysql timestamp google-bigquery schema

我正在尝试将BQ表中的列转换为时间戳。我有两个字符串列,其中一个用于从公共数据源导入的utc_hour(字符串0-23)和utc_day(字符串yyyymmdd)。我合并了两列,以产生一个字符串列utc_timestamp,并带有类似这样的字符串-“ 20171208 500”。

我需要将该字符串转换为时间戳,并在使用

时进行转换
TIMESTAMP(utc_timestamp)

我收到错误消息

Invalid timestamp: '20171208 500'

我尝试使用dataprep,它也无法将该字符串转换为时间戳。

如何将这种格式转换为时间戳?

2 个答案:

答案 0 :(得分:3)

尝试使用%Y%m%d%k%M 格式进行解析。

PARSE_TIMESTAMP("%Y%m%d%k%M", utc_timestamp)

答案 1 :(得分:0)

此问题已得到回答,但如果其他人使用他/她自己独特的时间戳格式访问此处(在这种情况下,接受的答案可能不起作用),您需要遵循此 documentation page 上的注释>

例如,在我的例子中,值是这样的“2020-05-11-00:00:00”。所以,我去了上面提到的页面,发现我需要的格式字符串类似于“%Y-%m-%d-%H:%M:%S”。

我将在我的格式字符串中添加我使用的描述:

%d  The day of the month as a decimal number (01-31).
%H  The hour (24-hour clock) as a decimal number (00-23).
%M  The minute as a decimal number (00-59).
%m  The month as a decimal number (01-12).
%S  The second as a decimal number (00-60).
%Y  The year with century as a decimal number.

:- 是不言自明的。