| 区间约定 | 闭开 [start, end) |
|---|---|
| 当前行 | end=9999-12-31 |
| 约束 | 同自然键版本区间不重叠 |
按业务日期取版本
按业务日期取版本
SELECT * FROM dim_user d
WHERE :dt >= d.start_date AND :dt < d.end_date;闭开区间能避免相邻版本在边界日期重叠,是拉链实现的关键约定。
用 start_date / end_date 描述每个版本的生效区间;建议闭开区间 [start, end),当前行 end 取远期极大值而非 NULL。
| 区间约定 | 闭开 [start, end) |
|---|---|
| 当前行 | end=9999-12-31 |
| 约束 | 同自然键版本区间不重叠 |
SELECT * FROM dim_user d
WHERE :dt >= d.start_date AND :dt < d.end_date;