我有一列-local_month-包含字符串值“ 2019-08”。有什么想法可以将其转换为时间戳数据类型吗?
我当前的方法是获取该值的子字符串,以产生01-08-2019的值。当我尝试将其用作时间戳时,这仍然给我一个错误。
FORMAT_TIMESTAMP("%d-%m-%Y",TIMESTAMP(DATE(cast(SUBSTR(local_month,1,4) as int64),cast(SUBSTR(local_month,6,2) as int64),cast('01' as int64)))) as month
答案 0 :(得分:0)
您可以使用PARSE_DATE
,然后将输出转换为时间戳,因为PARSE_DATE
将返回DATE
:
with parse_date AS (SELECT PARSE_DATE("%m-%Y", '08-2019') as date)
SELECT FORMAT_TIMESTAMP('%d-%m-%Y', CAST(date as TIMESTAMP)) from parse_date
将输出以下内容:
Row | f0_
------------------
1 | 01-08-2019
有关PARSE_DATE
功能的更多信息,可以在public docs中找到。
答案 1 :(得分:0)
只需使用PARSE_()
函数之一。就您而言,PARSE_TIMESTAMP()
:
SELECT PARSE_DATE('%m-%Y', '08-2019'),
PARSE_DATETIME('%m-%Y', '08-2019'),
PARSE_TIMESTAMP('%m-%Y', '08-2019')