BigQuery PARSE_TIMESTAMP无法解析字符串

时间:2018-10-16 13:25:54

标签: datetime google-bigquery standard-sql

我正在尝试将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”

有什么想法我可以尝试将其格式化为时间戳吗?

谢谢!

2 个答案:

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