2016-11-24 144 views

回答

1

你必须使用DAYOFWEEK(),然后CASE语句返回星期几。 DAYOFWEEK()将星期几作为1(星期日)至7(星期六)之间的整数。 Date and time functions

例如

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 'Thursday' 
    WHEN DAYOFWEEK(CURRENT_DATE()) = 6 THEN 'Friday' 
    WHEN DAYOFWEEK(CURRENT_DATE()) = 7 THEN 'Saturday' 
    END Weekday 
+0

是的,我已经想通了这方法。它的作品,但看起来很丑陋:P 无论如何,谢谢! – shayms8

+0

这适用于大查询中的传统sql。 –

+0

@ mav3n - 这**不适用于BigQuery标准SQL。你应该纠正你的编辑到这个答案 –

1

下面是BigQuery的标准SQL

#standardSQL 
SELECT 
    CURRENT_DATE() AS day, 
    FORMAT_DATE('%a', CURRENT_DATE()) AS weekday_name_abbreviated, 
    FORMAT_DATE('%A', CURRENT_DATE()) AS weekday_name_full 

#standardSQL 
SELECT 
    DATE('2016-11-24 00:00:00') AS day, 
    FORMAT_DATE('%a', DATE('2016-11-24 00:00:00')) AS weekday_name_abbreviated, 
    FORMAT_DATE('%A', DATE('2016-11-24 00:00:00')) AS weekday_name_full 

结果是

day   weekday_name_abbreviated weekday_name_full  
2016-11-24 Thu       Thursday  
相关问题