在 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) - 年月日期格式