2017-06-23 207 views
0

提取一天我不能叫repository.created_atEXTRACT()功能時間戳變數中擷取天。standardSQL:無法從時間戳

#standardSQL 
SELECT repository.created_at AS fechas, 
     EXTRACT(DAY FROM DATE repository.created_at) 
FROM `bigquery-public-data.samples.github_nested` 
LIMIT 100 

如何解決?

回答

3
#standardSQL 
SELECT 
    repository.created_at AS fechas, 
    EXTRACT(DAY FROM PARSE_TIMESTAMP('%Y/%m/%d %X %z', repository.created_at)) 
FROM `bigquery-public-data.samples.github_nested` 
LIMIT 100 
1

字段repository.created_at是字符串類型。在提取一天之前,您需要將其解析爲日期。

這應該工作:

SELECT repository.created_at AS fechas, 
     EXTRACT(DAY FROM PARSE_DATE("%Y/%m/%d", 
SUBSTR(repository.created_at, 0, 10))) 
FROM `bigquery-public-data.samples.github_nested` 
LIMIT 100 
+0

非常感謝@Wouter。我嘗試將所有傳統SQL遷移到標準SQL代碼,而我不知道如何處理它。 –

+0

實際上,這種解決方案給出錯誤的結果,因爲它沒有考慮到時區! –