在bigquery中解析日期形式的字符串

时间:2018-09-07 00:37:55

标签: sql date google-bigquery

我在bigquery中有一个表,该表的列类型为“ timeStamp”,数据类型为STRING。此列中的值类似于此“ 20180902”。

这就是我试图解析此字符串为最新日期的方式

SELECT PARSE_DATE('%Y%m%d', timeStamp) AS date FROM data.data_temp

但这会引发错误,提示“无法解析输入字符串“ timeStamp””

此外,以下查询同时成功运行,并将日期返回为“ 2018-09-02”

SELECT PARSE_DATE('%Y%m%d', '20180902') AS date FROM data.data_temp

关于这里发生的事情以及如何解决此问题的任何线索吗?

2 个答案:

答案 0 :(得分:1)

下面的示例显示,如果您声明值确实为“ 20180902”,则该值应该有效

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '20180902' timeStamp   
)
SELECT 
  `timeStamp`, 
  PARSE_DATE('%Y%m%d', timeStamp    ) AS date    
FROM `project.dataset.table`

结果为

Row   timeStamp   date   
1     20180902    2018-09-02     

因此,该问题在某些行中可能具有错误的值-并且您需要标识这些行

答案 1 :(得分:0)

我发现了问题。我的表底部有一行,其值是“ timeStamp”。删除该行,一切正常。