如何在 Google BigQuery 中获取日期名称

Posted

技术标签:

【中文标题】如何在 Google BigQuery 中获取日期名称【英文标题】:How to get Day name in Google BigQuery 【发布时间】:2015-07-09 13:30:42 【问题描述】:

如何在 Google BigQuery 中获取日期的日期名称。

我可以通过下面的查询来实现这一点

SELECT CASE WHEN DAYOFWEEK(CURRENT_DATE())=1 THEN 'Sunday' WHEN DAYOFWEEK(CURRENT_DATE())=2 THEN 'Monday'
             WHEN DAYOFWEEK(CURRENT_DATE())=3 THEN 'Tuesday' WHEN DAYOFWEEK(CURRENT_DATE())=4 THEN 'Wednesday'
             WHEN DAYOFWEEK(CURRENT_DATE())=5 THEN 'Thusday' WHEN DAYOFWEEK(CURRENT_DATE())=6 THEN 'Friday'
             WHEN DAYOFWEEK(CURRENT_DATE())=7 THEN 'Saturday' END as [DOW]

是否有任何默认函数可用于获取当天的名称?

【问题讨论】:

【参考方案1】:

是的,standardSQL 和 legacySQL 中都有等效的函数。

标准 SQL

您可以使用 FORMAT_DATE() 函数,您可以使用任何您喜欢的日期格式。 Link to Docs

例子:

#standardSQL
SELECT
  CURRENT_DATE() AS date,
  FORMAT_DATE('%A', CURRENT_DATE()) AS dow

旧版 SQL

有 STRFTIME_UTC_USEC() 函数。不过,它需要先将您的时间戳转换为 USEC。 Link to docs

例子:

#legacySQL
SELECT
  CURRENT_DATE() AS date,
  STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(TIMESTAMP(CURRENT_DATE())), '%A') AS dow

【讨论】:

使用旧版 SQL 实际上可以更简单:SELECT CURRENT_DATE() AS date, STRFTIME_UTC_USEC(CURRENT_DATE(), '%A') AS dow【参考方案2】:

在 Google 的 Big Query 中,使用的函数是:format_datetime('%A',yourdate) 而不是 2017 年发布的 format_date。

【讨论】:

【参考方案3】:

不,没有。根据query reference 上的文档(您应该为其添加书签:)),尤其是DateTime ones。

您可以使用 DAYOFWEEK() 获取当天的编号,就像您在查询中所做的那样。但就是这样。

【讨论】:

【参考方案4】:

正如上述Medur Mamutov所述。可以利用format_date 功能并利用不同的formatting elements。

对于完整的工作日名称,请尝试: SELECT FORMAT_DATE("%A", CURRENT_DATE())

【讨论】:

以上是关于如何在 Google BigQuery 中获取日期名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在Google BigQuery中获取Day名称

如何在 Google App Engine 上为 BigQuery 设置截止日期

如何在 google BigQuery 中填写缺失的日期

如何从 BigQuery 下拉列表中绘制多个日期到 Google Data Studio

在 BigQuery 或 Google Data Studio 中获取上个月的数据

如何在 Google Apps 脚本中将 BigQuery TIMESTAMP 转换为日期?