sql - 如何在 SQL 中为不同月份运行不同的日期范围
问题描述
我需要自动化报告的日期。用户每年运行四次报告。
Q1-jan-march- 运行 may1
Q2-Apr-Jun - 运行 Aug1
Q3-7-9 - 运行 Oct1
Q4-oct-dec - 运行 feb1
当用户在 5 月运行查询时,他应该得到 SELECT * FROM Table where DATE Between jan1 and march31 的结果。如何根据运行的月份编写不同的日期范围。
提前致谢。
解决方案
您似乎想过滤上一季度。这是一种方法:
select *
from mytable
where date >= dateadd(qq, datediff(qq, 0, getdate()) - 1, 0)
and date < dateadd(qq, datediff(qq, 0, getdate()), 0)
这会根据当前日期动态计算上一季度的开始和结束。
推荐阅读
- c - C 错误中的外部结构:数组类型的元素类型不完整
- spring-security - DefaultStateKeyGenerator 的继任者
- scala - 懒惰的val和def的区别,如果保证函数只被调用一次?
- nexus3 - Nexus 3 何时为 pypi 存储库生成简单索引?
- mysql-connector - 在 Ubuntu 18.04 上安装 MySQL 客户端 5.6
- ping - 使用遥控器无法访问网络
- jenkins-pipeline - 将变量从 parameterizedCron 传递到 jenkins DSL 脚本中的阶段
- python - 当您单击它时,圆圈应该会移动,但会消失
- docker - 如何使用 nodeport Kubernetes 连接到主节点
- javascript - 打字稿以编程方式设置复杂对象属性值