Google bigquery 如何在BigQuery上获取“上周一”?

Google bigquery 如何在BigQuery上获取“上周一”?,google-bigquery,Google Bigquery,使用BigQuery,我需要知道上周一是什么时候。我如何计算这个日期 例如,今天是星期一,因此如果调用公式,则应返回今天的日期。昨天它应该在上个月27日返回 以圣地亚哥皮诺为例: 复制为圣地亚哥皮诺: 复制的您可以使用UTC_USEC_TO_WEEK功能: Select STRFTIME_UTC_USEC( UTC_USEC_TO_WEEK(NOW(), 1), "%Y-%m-%d" ) 您可以使用UTC_USEC_TO_WEEK功能: Select STRFTIME_UTC_US

使用BigQuery,我需要知道上周一是什么时候。我如何计算这个日期

例如,今天是星期一,因此如果调用公式,则应返回今天的日期。昨天它应该在上个月27日返回

以圣地亚哥皮诺为例:

复制为圣地亚哥皮诺:


复制的

您可以使用UTC_USEC_TO_WEEK功能:

Select 
  STRFTIME_UTC_USEC( UTC_USEC_TO_WEEK(NOW(), 1), "%Y-%m-%d" )

您可以使用UTC_USEC_TO_WEEK功能:

Select 
  STRFTIME_UTC_USEC( UTC_USEC_TO_WEEK(NOW(), 1), "%Y-%m-%d" )

@Felipe Hoffa和@YABADABADOU的答案在旧的遗留SQL中。标准SQL中的答案与Felipe Hoffa的答案非常相似:

#standardSQL
SELECT 
    DATE_SUB(CURRENT_DATE(), 
             INTERVAL 
             IF( EXTRACT(DAYOFWEEK FROM CURRENT_DATE()) = 1, 
                 6, 
                 EXTRACT(DAYOFWEEK FROM CURRENT_DATE()) - 2) 
             DAY);

@Felipe Hoffa和@YABADABADOU的答案在旧的遗留SQL中。标准SQL中的答案与Felipe Hoffa的答案非常相似:

#standardSQL
SELECT 
    DATE_SUB(CURRENT_DATE(), 
             INTERVAL 
             IF( EXTRACT(DAYOFWEEK FROM CURRENT_DATE()) = 1, 
                 6, 
                 EXTRACT(DAYOFWEEK FROM CURRENT_DATE()) - 2) 
             DAY);

下面是BigQuery标准SQL

#standardSQL
SELECT DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY))

下面是BigQuery标准SQL

#standardSQL
SELECT DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY))

此外,如果要获取星期一当天的前一个星期一:选择lastMonday作为选择案例,从当前日期提取DayOfWeek\u DATE=2,然后选择DATE\u SUBCURRENT\u DATE,间隔1天否则当前日期结束为d选择日期\u trunc选择d FROM lastMonday,WeekMonday另外,如果要获取星期一当天的上一个星期一:选择lastMonday作为选择案例,从当前提取DayOfWeek\u DATE=2,然后选择DATE\u SUBCURRENT\u DATE,间隔1天,否则当前日期结束为d选择日期\u trunc选择d FROM lastMonday,WEEKMONDAY