Получить даты предыдущей рабочей недели в BigQuery SQL - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно получить даты предыдущей рабочей недели (пн-пт) в BigQuery. До сих пор мне удалось следующее:

SELECT 
DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY)) as previous_mon,
DATE_ADD(DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY)), INTERVAL 4 DAY) as previous_fri

Но это дает мне самые последние даты с понедельника по пятницу, которые на самом деле на этой неделе. Другими словами, если я выполню этот запрос сегодня (28-06-2019), я получу следующие результаты:

Row today         previous_mon    previous_fri  
1   2019-06-28    2019-06-24      2019-06-28

Но на самом деле мне нужно:

Row today         previous_mon    previous_fri  
1   2019-06-28    2019-06-17      2019-06-21

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Просто вычтите еще одну неделю:

SELECT DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY)), INTERVAL 1 WEEK) as previous_mon,
       DATE_SUB(DATE_ADD(DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY)), INTERVAL 4 DAY), INTERVAL 1 WEEK) as previous_fri
0 голосов
/ 28 июня 2019

Ниже для BigQuery Standard SQL

#standardSQL
SELECT 
  CURRENT_DATE() today,
  DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY)), INTERVAL 1 WEEK) previous_mon,
  DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK(MONDAY)), INTERVAL 3 DAY) previous_fri

с результатом

Row today       previous_mon    previous_fri     
1   2019-06-28  2019-06-17      2019-06-21  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...