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?
答案 0 :(得分:16)
是的,标准SQL和legacySQL都有相同的功能。
您可以使用FORMAT_DATE()函数,您可以使用任何您想要的日期格式。 Link to Docs
示例:
#standardSQL
SELECT
CURRENT_DATE() AS date,
FORMAT_DATE('%A', CURRENT_DATE()) AS dow
有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。