【问题标题】:parse date form string in bigquery从 bigquery 中的字符串解析日期
【发布时间】:2019-02-12 06:57:35
【问题描述】:

我在 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

关于这里发生了什么以及如何解决这个问题的任何线索?

【问题讨论】:

  • 我发现了问题。我的表底部有一排值为 "timeStamp" 。删除了那一行,一切正常。
  • 。 .您应该删除问题或接受 Mikhail 的回答。

标签: sql date google-bigquery


【解决方案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     

因此问题可能存在于某些行中的某些错误值中 - 您需要识别这些行

【讨论】:

  • 是的。我发现了这个问题。发布在上面。
【解决方案2】:

我发现了问题。我的表底部有一排值为 "timeStamp" 。删除了该行,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多