WEEKS
功能概述
返回从 1970-01-01 到指定日期经过的完整周数,即距 1970-01-01 的天数除以 7 后向下取整。主要用作分区转换函数
PARTITIONED BY (weeks(<col>)),让表按周分区;也可以在查询中直接调用,把日期归到同一个周编号下做统计。
与 DAYS、MONTHS、YEARS、HOURS 是同一组分区转换函数。
语法
参数说明
:DATE、TIMESTAMP 类型,或可以转换为日期的 STRING。<expr>
返回 INT 类型。
使用示例
| w0 | w0_end | w1 | w2023 |
|---|---|---|---|
| 0 | 0 | 1 | 2772 |
2023-02-16 距 1970-01-01 共 19404 天,19404 / 7 = 2772。
建表时按周分区:
| id | event_date | week_no |
|---|---|---|
| 1 | 2023-02-16 | 2772 |
| 2 | 2023-02-20 | 2772 |
2023-02-16(星期四)和 2023-02-20(星期一)落在同一个分区,因为分区边界从星期四开始。
注意事项
- 周边界从星期四开始,与自然周不同。
- 用作分区转换时,查询条件直接写原始列(如
),系统会自动裁剪分区。WHERE event_date >= '2023-02-16'
相关文档
联系我们
