How to get Day name in Google BigQuery

时间:2015-07-09 13:30:42

标签: google-bigquery

How to get the name of the day from date in Google BigQuery.

I can achieve this by below query

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]

If there is any default function available to get name of the day?

3 个答案:

答案 0 :(得分:16)

是的,标准SQL和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

答案 1 :(得分:0)

不,没有。根据{{​​3}}上的文档(您应该将其标记为:)),最具体的是query reference

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

答案 2 :(得分:0)

在Google的大查询中,要使用的函数为:format_datetime('%A',yourdate) 而不是2017年发布的format_date。