Reputation: 771
I'm Using BigQuery Standart SQL.
I need to convert a timestamp to Day-of-week name.
e.g. convert today's timestamp (2016-11-24 00:00:00) into a string: 'Thursday'
Thanks :)
Upvotes: 11
Views: 54771
Reputation: 808
In BigQuery you can use:
SELECT
EXTRACT(DAYOFWEEK
FROM
{your_timestamp}) AS dayofweek,
FROM TABLE
It returns an integer: 1 = Sunday, 7 = Saturday
Upvotes: 11
Reputation: 3939
You have to use DAYOFWEEK() and then a CASE statement to return day of week. DAYOFWEEK() returns the day of the week as an integer between 1 (Sunday) and 7 (Saturday). Date and time functions
e.g.
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
Upvotes: 0
Reputation: 172993
Below is for BigQuery Standard 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
or
#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
result is
day weekday_name_abbreviated weekday_name_full
2016-11-24 Thu Thursday
Upvotes: 28