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

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

谢谢!

【问题讨论】:

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

标签: sql google-bigquery google-data-studio bigquery-standard-sql


【解决方案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 非常感谢!这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
相关资源
最近更新 更多