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

Posted

技术标签:

【中文标题】Bigquery (Standard Sql) - 年月日期格式【英文标题】:Big Query (Standard Sql) - month & Year dateformat 【发布时间】:2018-05-09 13:26:01 【问题描述】:

我一直在尝试创建一个指定年份和月份的列(通过从时间戳列中提取年份和月份,然后将它们连接在一起)。 该列是否有可能是“日期”类型? 我要求的原因是将不同的值显示为日期(在 Google Data Studio 上)而不是数字。 理想情况下,它看起来像这样: “2018 年 5 月” 而不是“2018-05”,这是我的输出。

谢谢!

【问题讨论】:

我不知道只有月份和年份的 Date 数据类型。但是,您可以只构建一个列来分配它是什么月/年的第一天。这样,您至少可以将所有内容聚合到同一天的数据点。然后,只需格式化该日期的显示方式即可。 您应该尽可能存储最精确的信息。如果今天您需要某种格式,可以获取数据并转换输出。如果明天您需要另一种日期格式,您需要做的就是更改/添加另一个转换。无需包含易于计算的信息的列 【参考方案1】:

我认为你甚至不需要在这里创建一个新列,你可以使用FORMAT_DATETIME函数:

SELECT
    FORMAT_DATETIME("%B, %Y", DATETIME "2018-05-09 15:30:00")
FROM yourTable;

这应该打印May, 2018

【讨论】:

我认为 OP 正在使用 Data Studio,因此他们需要一个 DATE/TIMESTAMP 类型才能让 Data Studio 将其提取出来。 @GrahamPolley OP 声明 doing so by extracting the year and month from a timestamp column。您是否将此解释为 没有 已经有时间戳列?如果不是,那么这是一个糟糕的设计,但即使在这种情况下,我们仍然可以将文本转换为日期,然后再转换回文本。 不是 100% 确定。我读到:“该列是否有可能是“日期”类型?我要求的原因是将不同的值显示为日期(在 Google Data Studio 上)“ 因为 OP 需要一个日期在 Data Studio 中输入要用于 viz 的列。 @GrahamPolley 要求full month name, year 的格式在我阅读时是一个演示文稿。 @TimBiegeleisen 非常感谢!这正是我所需要的。

以上是关于Bigquery (Standard Sql) - 年月日期格式的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在BigQuery Standard SQL中解析XML标签?

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

Bigquery Standard Sql 等效于 Legacy Sql 中的 LAST()

PARSE_DATE : 解析函数 BigQuery/Standard SQL 的结果无效

有没有办法在 BigQuery Standard SQL 中解析 XML 标签?

Bigquery Standard Sql 等效于 Legacy Sql 中的 GROUP_CONCAT_UNQUOTED