sql - 以日期时间格式在 sql 中获取接下来 12 个月的第一个和最后一个日期
问题描述
我正在尝试从报告/查询运行之日起获取接下来 12 个月的第一个日期和最后一个日期。我能够通过使用以下查询获得下一个 12 个月,但不能使用第一个和最后一个日期。任何有关如何做到这一点的建议表示赞赏。
SELECT STR(MONTH(DATEADD(mm,Number,GETDATE())),2)+'/'
+ STR(YEAR(DATEADD(mm,Number,GETDATE())),4),DATEPART(MM,'january '+'01 1900')
FROM Master.dbo.spt_values
WHERE NAME IS NULL
AND Number BETWEEN 0 AND 11
但它给出的结果是:
但我期望的是:
解决方案
假设EOMONTH
功能被支持,使用
SELECT dateadd(day,1,dateadd(month,number-1,EOMONTH(getdate()))) as mth_start,
dateadd(month,number,EOMONTH(getdate())) as mth_end
FROM Master.dbo.spt_values
WHERE NAME IS NULL
AND Number BETWEEN 0 AND 11
推荐阅读
- c#-6.0 - Null 条件运算符(Elvis 运算符)可以防止 IndexOutOfRangeException 吗?
- r - 删除R中类别中的重复元素
- git - 更改 git 的代理配置以实现一推或一拉
- r - 更改闪亮仪表板选项卡中选定选项卡的颜色
- java - 我在查询presto数据时mybatis有一些问题
- python - 使用 Django 的用户帐户激活电子邮件
- python-3.x - Pandas JOIN/MERGE/CONCAT 特定索引上的数据帧
- php - 如何将 PHP 版本更改为 php5.6 并在 php5.6 中安装所有模块
- asp.net - 如何在 asp.net web api 中获取模型包含文本 json 属性的 json 数据?
- excel - 动态调整绘图区域大小以查看聚集条形图的类别轴中的截断文本