BigQuery - номер дня недели, где понедельник = 1 - PullRequest
1 голос
/ 07 февраля 2020

Существует ли стандартный способ возврата "номера дня недели" (1-7) в стандарте ISO (понедельник = 1) из даты в BigQuery с использованием встроенных функций?

EXTRACT(DAYOFWEEK, <date>) возвращает число в американском формате, т.е. в воскресенье = 1, что не подходит для моих целей.

Я могу создать пользовательскую функцию для вычисления номера дня недели в ISO, но я не уверен, что мне не хватает встроенного в него файла, который я мог бы использовать вместо этого.

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Вы можете конвертировать в стандарт ISO (понедельник = 1), используя модуль Arithmeti c:

MOD(EXTRACT(DAYOFWEEK FROM <date>) + 5, 7) + 1
0 голосов
/ 07 февраля 2020

Ниже приведен пример такой функции - только одна из многих опций, которые вы можете использовать с

#standardSQL
CREATE TEMP FUNCTION ISODAYOFWEEK(day DATE) AS ((
  SELECT IF(weekday = 0, 7, weekday) 
  FROM UNNEST([EXTRACT(DAYOFWEEK FROM day) - 1]) weekday 
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...