如何在 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 App Engine 上为 BigQuery 设置截止日期
如何从 BigQuery 下拉列表中绘制多个日期到 Google Data Studio