我正在尝试将BigQuery中的字符串转换为时间戳格式。
来源中所有日期的格式均为“ 10/15 11:59 PM”。
这是我正在尝试的概念证明:
SELECT
PARSE_TIMESTAMP(
'%d/%m/%y %I:%M %p',
CONCAT(SPLIT('10/15 5:00 PM', ' ')[offset(0)]
,'/',FORMAT_DATE('%y',CURRENT_DATE()),' '
,SPLIT('10/15 5:00 PM', ' ')[offset(1)],' '
,SPLIT('10/15 5:00 PM', ' ')[offset(2)]
)
)
此生成的字符串是“ 10/15/18 5:00 PM”,对我来说看起来是正确的,但是当我运行它时,出现错误:
查询失败错误:无法解析输入字符串“ 10/15/18 5:00 PM”
有什么想法我可以尝试将其格式化为时间戳吗?
谢谢!
答案 0 :(得分:1)
我认为您快到了,但是您的日期和月份是错误的,因此它试图获取第15个月。
SELECT
PARSE_TIMESTAMP(
'%m/%d/%y %I:%M %p',
CONCAT(SPLIT('10/15 5:00 PM', ' ')[offset(0)]
,'/',FORMAT_DATE('%y',CURRENT_DATE()),' '
,SPLIT('10/15 5:00 PM', ' ')[offset(1)],' '
,SPLIT('10/15 5:00 PM', ' ')[offset(2)]
)
)
答案 1 :(得分:0)
以下是用于BigQuery标准SQL
SELECT
PARSE_TIMESTAMP('%Y/%m/%d %I:%M %p',
CONCAT(FORMAT_DATE('%Y/',CURRENT_DATE()),'10/15 5:00 PM')
)