BigQuery - 星期几,其中星期一 = 1

Nat*_*ths 5 google-bigquery

是否有一种标准方法可以使用内置函数从 BigQuery 中的日期返回 ISO 标准(星期一 = 1)中的“星期几”(1-7)?

EXTRACT(DAYOFWEEK, <date>)返回一个使用美国格式的数字,即星期日 = 1,这对我的目的不起作用。

我可以创建一个自定义函数来计算 ISO 星期几数,但我不确定是否缺少可以使用的内置功能。

Lar*_*eth 9

您可以使用模运算转换为 ISO 标准(星期一 = 1):

MOD(EXTRACT(DAYOFWEEK FROM <date>) + 5, 7) + 1
Run Code Online (Sandbox Code Playgroud)


Mik*_*ant 2

以下是此类功能的示例 - 只是您可以提供的众多选项之一

#standardSQL
CREATE TEMP FUNCTION ISODAYOFWEEK(day DATE) AS ((
  SELECT IF(weekday = 0, 7, weekday) 
  FROM UNNEST([EXTRACT(DAYOFWEEK FROM day) - 1]) weekday 
));
Run Code Online (Sandbox Code Playgroud)