如何在Google BigQuery中获取Day名称

sel*_*mar 7 google-bigquery

如何在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]
Run Code Online (Sandbox Code Playgroud)

如果有任何默认功能可以获得当天的名字?

小智 18

是的,在standardSQL和legacySQL中都有相同的功能.

标准SQL

您可以使用FORMAT_DATE()函数,您可以使用任何您想要的日期格式. 链接到文档

例:

#standardSQL
SELECT
  CURRENT_DATE() AS date,
  FORMAT_DATE('%A', CURRENT_DATE()) AS dow
Run Code Online (Sandbox Code Playgroud)

旧版SQL

有STRFTIME_UTC_USEC()函数.它需要先将您的时间戳转换为USEC.链接到文档

例:

#legacySQL
SELECT
  CURRENT_DATE() AS date,
  STRFTIME_UTC_USEC(TIMESTAMP_TO_USEC(TIMESTAMP(CURRENT_DATE())), '%A') AS dow
Run Code Online (Sandbox Code Playgroud)


Pat*_*ice 0

不,没有。根据查询参考文档(您应该为其添加书签:)),最具体的是DateTime 文档

您可以使用 DAYOFWEEK() 获取当天的数字,就像您在查询中一样。但仅此而已。