[SQL]计算N个月前,N个月后的方法
来源:互联网 发布:p2p网络终结者下载 编辑:程序博客网 时间:2024/06/14 12:16
Agenda
#1. 计算N个月前的日期
#2. 计算N个月后的日期
#3. 月末最后一天的情况(计算从日数多的月到日数较少的月)
#4. 月末最后一天的情况(计算从日数少的月到日数较多的月)
1|计算N个月前的日期
如果要计算N个月前的日期。使用DATEADD函数,并且第二个参数N要指定为负数。
--指定N为负数DATEADD(month, N, 日付)
例如,计算2015年10月15日的前11个月的日期,SQL 如下:
--以下会全返回 2014-11-15 00:00:00.000SELECT DATEADD(month, -11, '20151015'), DATEADD(month, -11, '2015/10/15'), DATEADD(month, -11, '2015-10-15')
2|计算N个月后的日期
如果计算N个月后的日期,直接使用DATEADD函数,且第二个参数N指定为正数。
DATEADD(month, N, 日付)
例如,计算2015年10月15日的后3个月的日期,SQL如下:
--以下会全返回 2016-01-15 00:00:00.000SELECT DATEADD(month, 3, '20151015'), DATEADD(month, 3, '2015/10/15'), DATEADD(month, 3, '2015-10-15')
3|月末最后一天的情况(计算从日数多的月到日数较少的月)
在以日数多的月末最后一天开始,计算N个月后(N个月前)的日期,且该日期所在月为日数少的月,返回N个月后(N个月前)月末最后一天。
例如,3月31日的一个月后为4月30日。3月31日的一个月前,返回2月最后一天,且要考虑闰年的情况。
实际执行结果如下:
SELECT --返回 2015-04-30 00:00:00.000 DATEADD(month, 1, '2015/3/31'), --返回 2015-02-28 00:00:00.000 DATEADD(month, -1, '2015/3/31'), --返回 2016-02-29 00:00:00.000 DATEADD(month, -1, '2016/3/31')
4|月末最后一天的情况(计算从日数少的月到日数较多的月)
在以日数少的月末最后一天开始,计算N个月后(N个月前)的日期,且该日期所在月为日数多的月,返回日期不变。
例如,4月30日的一个月后为5月30日,4月30日的前一个月为3月30日。
实际执行结果:
SELECT --返回 2015-05-30 00:00:00.000 DATEADD(month, 1, '2015/4/30'), --返回 2015-03-30 00:00:00.000 DATEADD(month, -1, '2015/4/30')
注:本文原创由`bluetata`发布于blog.csdn.net、转载请务必注明出处。
0 0
- [SQL]计算N个月前,N个月后的方法
- 用递归方法计算整数n的阶乘n!
- 用递归方法计算n的阶乘n
- 用迭代方法计算n的阶乘
- 计算N的阶乘
- 计算N的阶乘
- 计算N的阶层
- 计算n的阶层
- 计算n的阶乘
- 大数N!的计算
- 计算n的阶乘
- 计算n的阶乘
- 计算n!的位数
- 计算n的阶乘
- 计算n的阶乘
- 计算N的阶乘
- 计算N的阶乘
- 计算n的阶乘
- word域代码 乱序
- malloc/free与new/delete的区别
- 方便Lucene高版本使用IKAnalyzer分词
- iOS学习
- <2-3>进程管理(3)
- [SQL]计算N个月前,N个月后的方法
- JVM性能调优
- 为什么可用性设计重要?如何实现可用性设计?
- 5-29 兔子繁衍问题 (15分)
- Mac上安装gradle和maven
- Leetcode 516. Longest Palindromic Subsequence
- setOnCheckedChangeListener为什么执行了两次
- 复制表结构和内容到另一张表中的SQL语句
- AndroidStudio-Eat-Guide—— 2.Gradle编译优化