如何用SQL生成一张日期维度表?
2023-03-14 09:31:20 时间
问题描述
输入想要生成日历的年份,通过调用存储过程,即可生成该年的全部日历。
创建表结构
我们根据常见的日历表来创建一个含有年,月,日,星期的日历表,具体表结构如下:
上面的表结构中我们将年、月、星期、日等都按照日历的形式显示成单独的列,末尾还添加了两个默认值,一个是删除标志,默认为0表示不删除,1表示删除,时间戳取系统时间。
创建存储过程
要调用参数,一般使用存储过程来传参。下面我们根据需求创建一个存储过程。
我们传递进一个INT型的参数给存储过程,表示年份,然后取这一年有多少天,从1月1日循环累加到12月31日,并将每天的相关信息都插入到表中,这样一整年的完整日历就完成了。
下面我们在SQL Server环境下开始写这个存储过程吧。
为了方便阅读,已经在每行代码上方添加了注释。对SQL系统函数不熟悉的可以搜索一下相关函数的用法。
调用存储过程
验证结果
执行完后我们查询一下表CALENDAR_INFO里的数据
结果:
翻一下日历表,2021-01-01这一天是星期五,说明我们写的日历表是正确的。
细心的朋友不知有没有发现,日历表中缺少中国农历,感兴趣的小伙伴可以思考一下该如何写农历的部分。
相关文章
- 大厂大数据平台核心架构满级图鉴
- 抽丝剥茧,深入的数据分析这么做!
- 10亿+/秒!看阿里如何搞定实时数仓高吞吐实时写入与更新
- 为什么大数据为NFT创造了一个巨大的市场
- 数据管理的11个秘密
- DataOps 是现代数据堆栈的未来吗?
- 十张图,数据分析如何赋能销售
- 剪掉ImageNet 20%数据量,模型性能不下降!Meta斯坦福等提出新方法,用知识蒸馏给数据集瘦身
- 数据指标 VS 标签体系,到底有啥区别?终于讲清楚了!
- 大变局!全国房价,跌破万元大关
- 蚂蚁集团大规模图计算系统TuGraph通过国家级评测
- 七个好用常见的大数据分析模型
- 大数据如何彻底改变医疗保健的五个示例
- 从0到1建设智能灰度数据体系:以vivo游戏中心为例
- Apache Doris刚刚 "毕业":这个SQL数据仓库有什么不一样?
- 一文看懂:数据指标体系的四大类型
- HTTP/3正式发布,深入理解HTTP/3协议
- “2022大数据十大关键词”发布:数据中台、数据分类分级等上榜
- 王晶晶:京东零售海量日志数据处理实践
- 苹果 macOS Ventura 13.1 正式版发布:引入无边记应用、iCloud 高级数据保护功能