【问题标题】:Convert query with STR_TO_DATE to BigQuery syntax [duplicate]将使用 STR_TO_DATE 的查询转换为 BigQuery 语法 [重复]
【发布时间】:2019-06-29 03:25:40
【问题描述】:

我的查询使用以下内容:

STR_TO_DATE(JSON_EXTRACT_SCALAR(fb.p_dataforanalytics,'$.birthday'), '%m/%d/%Y'), 
STR_TO_DATE(JSON_EXTRACT_SCALAR(g.p_dataforanalytics,'$.birthday'), '%Y-%m-%d'),    
date_format(p_birthday, '%Y-%m-%d')

此语法在 MySQL 中有效,但在 BigQuery 中无效。 我不知何故需要使用PARSE_DATE(?) 对其进行转换,但我找不到合适的语法。

编辑:

PARSE_DATE('%m/%d/%Y', JSON_EXTRACT_SCALAR(fb.p_dataforanalytics,'$.birthday') ),
PARSE_DATE('%Y-%m-%d', JSON_EXTRACT_SCALAR(g.p_dataforanalytics,'$.birthday')),
PARSE_DATE('%Y-%m-%d', p_birthday) 

剂量工作。 我明白了:

解析函数的结果无效

还有 在p_birthday 行:

参数类型的函数 PARSE_DATE 没有匹配的签名: 字符串,INT64。支持的签名:PARSE_DATE(STRING, STRING) at [15:33]

【问题讨论】:

标签: mysql google-bigquery


【解决方案1】:

简单,使用标准 SQL:

#standardSQL
SELECT PARSE_DATE('%m/%d/%Y',  '6/22/2017')


2017-06-22  

https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#supported-format-elements-for-date

JSON_EXTRACT_SCALAR 应该保持不变。

【讨论】:

  • 我知道。但这不适用于我的查询。这不仅仅是更改函数名称。
  • 解析函数的结果无效
  • 查看已编辑的问题:现在您似乎在解析 JSON 数据时遇到了问题。您可以将 JSON 数据粘贴到新问题中吗?另外,您可以粘贴 p_birthday 的值吗?似乎是一个数字而不是一个字符串。
  • 部分数据可能无效。我如何确保它可以转换为日期,如果不是简单地显示 NULL ?如果可能,基本上到 PARSE_DATE,如果不返回 NULL
猜你喜欢
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2016-08-30
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多