在 BigQuery 中格式化日期

Posted

技术标签:

【中文标题】在 BigQuery 中格式化日期【英文标题】:Formatting a Date in BigQuery 【发布时间】:2018-07-06 22:23:08 【问题描述】:

我正在查询 365 天的 Google Analytics(分析)数据,数据导出为:

20170726

我想要的是它以某种形式解析:

2017-07-26
07/26/2017
07/26/2017

我相信我应该使用 FORMAT_DATETIME 子句/方法来完成此任务,并且是这样的:

SELECT
    FORMAT_DATETIME(%m/%d/%Y, date)

日期是 Google Analytics 中的字段。

【问题讨论】:

列的类型是什么? 【参考方案1】:

以下是 BigQuery 标准 SQL 并假设您的日期字段是 STRING 类型

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '20170726' date
)
SELECT 
  FORMAT_DATE('%m/%d/%Y', PARSE_DATE('%Y%m%d', date)) AS `date_string_formatted_as_MM_DD_YYYY`,
  FORMAT_DATE('%Y-%m-%d', PARSE_DATE('%Y%m%d', date)) AS `date_string_formatted_as_YYYY_MM_DD`
FROM `project.dataset.table`

结果

Row date_string_formatted_as_MM_DD_YYYY date_string_formatted_as_YYYY_MM_DD  
1   07/26/2017                          2017-07-26

【讨论】:

【参考方案2】:

你可以试试这个standardSql

PARSE_DATE('%Y%m%d', date) as date,

【讨论】:

【参考方案3】:

你会想用这个来代替。 SELECT CONVERT(VARCHAR, [your_date_field] , XXX) 其中 XXX 是一个整数值,它告诉 CONVERT() 您希望日期采用哪种格式。我相信您可以将101 用于您的目的。

【讨论】:

以上是关于在 BigQuery 中格式化日期的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery (Standard Sql) - 年月日期格式

BigQuery:无效日期错误

Bigquery 中的错误日期格式从字符串更改为日期

如何将特定日期格式加载到 BigQuery

如何使用谷歌应用脚​​本在 BigQuery 中导入 csv 日期格式

BigQuery:验证所有日期的格式为 yyyy-mm-dd