将具有STR_TO_DATE的查询转换为BigQuery语法

时间:2019-02-05 10:22:36

标签: mysql google-bigquery

我的查询使用以下内容:

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没有匹配的签名:   STRING,INT64。支持的签名:PARSE_DATE(STRING,STRING),位于   [15:33]

1 个答案:

答案 0 :(得分:0)

使用标准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应该保持不变。