rus*_*sds 3 sql t-sql sql-server
我正在寻找一个简单的选择查询(不使用表格)来返回一个相隔1个月的日期列表.输出应该是这样的东西,(假设GetDate()='2011-07-05 11:59:000',我想在NOW()和NOW()+ 4个月之间
Date
2011-07-05 11:59:000
2011-08-05 11:59:000
2011-09-05 11:59:000
2011-10-05 11:59:000
2011-11-05 11:59:000
Run Code Online (Sandbox Code Playgroud)
杀死我的部分是计算明年,例如,如果我在11月运行此查询,则应将这些月份列为11,12,1,2.谢谢!
您可以使用递归CTE,如果要求未修复如下,则无需将UNION串起来:
;with MonthlyCalendar as (
select cast(getdate() as datetime) as dt
union all
select dateadd(mm, 1, dt)
from MonthlyCalendar
)
select top 5 dt as [Date] from MonthlyCalendar
option (maxrecursion 0) Run Code Online (Sandbox Code Playgroud)
在性能方面,你需要只有4个月的时间,UNION远远优于递归选项.
| 归档时间: |
|
| 查看次数: |
8209 次 |
| 最近记录: |