首页 > 解决方案 > Google大查询中是否有查找ISO周数/日历年周数的第一个日期和最后一个日期的功能?

问题描述

让我们假设一个日历周。

周数是 2020 年 2 月 2 日。

我正在寻找方法来找到一周的开始和结束日期。任何指向内置函数或任何其他方法的指针都会有所帮助。

标签: google-bigquery

解决方案


我没有看到直接的方法,但是使用现有的日期函数,构建一个可以查询的查找表非常容易:

CREATE TABLE day_of_week_table AS
SELECT
  date,
  EXTRACT(ISOYEAR FROM date) AS isoyear,
  EXTRACT(ISOWEEK FROM date) AS isoweek,
  EXTRACT(WEEK FROM date) AS week,
  EXTRACT(DAYOFWEEK FROM date) AS dayOfWeek
FROM UNNEST(GENERATE_DATE_ARRAY('2020-1-1', '2021-1-1')) AS date
ORDER BY date;

粘贴此表的前几行

|    date    | isoyear | isoweek | week | dayOfWeek |
+------------+---------+---------+------+-----------+
| 2020-01-01 |    2020 |       1 |    0 |         4 |
| 2020-01-02 |    2020 |       1 |    0 |         5 |
| 2020-01-03 |    2020 |       1 |    0 |         6 |
| 2020-01-04 |    2020 |       1 |    0 |         7 |
| 2020-01-05 |    2020 |       1 |    1 |         1 |
| 2020-01-06 |    2020 |       2 |    1 |         2 |
| 2020-01-07 |    2020 |       2 |    1 |         3 |
| 2020-01-08 |    2020 |       2 |    1 |         4 |
| 2020-01-09 |    2020 |       2 |    1 |         5 |
| 2020-01-10 |    2020 |       2 |    1 |         6 |
| 2020-01-11 |    2020 |       2 |    1 |         7 |

推荐阅读