我需要在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
但是,这给了我最近的周一至周五的日期,实际上是本周。换句话说,如果我今天(2019年6月28日)运行此查询,则会得到以下结果:
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
答案 0 :(得分:0)
以下是用于BigQuery标准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
答案 1 :(得分:0)
再减去一周:
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