为什么需要财务日历
业务按自然年分析,财务按财年出具报表,两者的起始月不同。日历维要同时维护自然年属性(年、月、周)与财年属性(财年、财季、财期、财周),这样同一份事实既能按业务口径也能按财务口径聚合,不必维护两张日历表。
基本信息
| 自然属性 | 自然年、自然月、自然周、自然季度 |
|---|---|
| 财务属性 | 财年、财季、财期、财周 |
| 关键参数 | 财年起始月可配置,常见为 4 月制 |
| 日期键 | 用整数 YYYYMMDD,便于范围比较与排序 |
| 覆盖范围 | 至少覆盖历史最早数据到未来三年 |
典型使用场景
- 财务月报:按财期汇总收入与成本,与财务系统对齐
- 业务周报:按自然周统计活跃与销售
- 同环比计算:用日历维取去年同期与上一期日期
- 假期与工作日分析:节假日属性支撑业务波动解释
- 跨年对比:按财年与自然年两种口径分别看趋势
日历维建表
日历维建表
-- 日历维:自然属性与财务属性并存
CREATE TABLE dim_date (
date_key int COMMENT '日期键 YYYYMMDD',
cal_date date COMMENT '自然日期',
cal_year int COMMENT '自然年',
cal_month int COMMENT '自然月',
cal_week int COMMENT '自然周',
fiscal_year int COMMENT '财年',
fiscal_period int COMMENT '财期 1-12',
is_workday int COMMENT '是否工作日'
) STORED AS ORC;属性与取值
| 属性 | 示例取值 | 说明 |
|---|---|---|
| 自然年与月 | 2026、10 | 业务分析常用 |
| 财年 | 2026 或 2027 | 起始月不同,跨自然年 |
| 财期 | 1 到 12 | 财务月报的口径基础 |
| 财周 | 1 到 52 | 周粒度财务分析 |
财年起始月要按公司配置:4 月制的公司里,2026 财年可能从 2025 年 4 月开始;海外实体口径不同时通过字段区分,不要改表结构。
日期键用字符串会退化范围比较与排序:整数形式的键既保留可读性,也能直接做区间过滤与排序,边界日期不易漏掉。
日历维要作为独立表发布并固定生成规则:临时用日期函数推算自然周与财期,在跨年与调休年份极易算错,且错误会扩散到所有下游报表。