[ SQL Server ] 计算N个月前,N个月后的方法

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: #1. 计算N个月前的日期#2. 计算N个月后的日期#3. 月末最后一天的情况(计算从日数多的月到日数较少的月)#4. 月末最后一天的情况(计算从日数少的月到日数较多的月)

#1. 计算N个月前的日期

#2. 计算N个月后的日期

#3. 月末最后一天的情况(计算从日数多的月到日数较少的月)

#4. 月末最后一天的情况(计算从日数少的月到日数较多的月)

1|计算N个月前的日期

如果要计算N个月前的日期。使用DATEADD函数,并且第二个参数N要指定为负数。

--指定N为负数
DATEADD(month, N, 日付)

image.gif

例如,计算2015年10月15日的前11个月的日期,SQL 如下:

--以下会全返回 2014-11-15 00:00:00.000
SELECT 
  DATEADD(month, -11, '20151015'),
  DATEADD(month, -11, '2015/10/15'),
  DATEADD(month, -11, '2015-10-15')

image.gif

2|计算N个月后的日期

如果计算N个月后的日期,直接使用DATEADD函数,且第二个参数N指定为正数。

DATEADD(month, N, 日付)

image.gif

例如,计算2015年10月15日的后3个月的日期,SQL如下:

--以下会全返回 2016-01-15 00:00:00.000
SELECT 
  DATEADD(month, 3, '20151015'),
  DATEADD(month, 3, '2015/10/15'),
  DATEADD(month, 3, '2015-10-15')

image.gif

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')

image.gif

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')

image.gif


目录
相关文章
|
6月前
|
SQL 数据采集 关系型数据库
实现MySQL与SQL Server之间数据迁移的有效方法
总的来说,从MySQL到SQL Server的数据迁移是一个涉及到很多步骤的过程,可能会遇到各种问题和挑战。但只要精心规划、仔细执行,这个任务是完全可以完成的。
506 18
|
6月前
|
SQL 存储 大数据
Dataphin V5.0:支持创建异步调用API,实现慢 SQL 复杂计算的直连消费
本文介绍了数据服务产品中异步调用的应用场景与优势,包括大数据引擎查询、复杂SQL及大规模数据下载等场景,解决了同步调用可能导致的资源浪费和性能问题。通过创建异步API、测试发布以及权限申请等功能,实现高效稳定的服务提供。以电商订单查询为例,展示了如何利用异步调用提升系统性能与用户体验。
274 9
|
6月前
|
SQL Java 数据库连接
Java中实现SQL分页的方法
无论何种情况,选择适合自己的,理解了背后的工作原理,并能根据实际需求灵活变通的方式才是最重要的。
189 9
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
264 12
|
7月前
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
8月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
211 16
|
12月前
|
SQL 监控 安全
Flask 框架防止 SQL 注入攻击的方法
通过综合运用以上多种措施,Flask 框架可以有效地降低 SQL 注入攻击的风险,保障应用的安全稳定运行。同时,持续的安全评估和改进也是确保应用长期安全的重要环节。
482 71
|
11月前
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
516 12
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
606 4
|
SQL BI 数据库
SQL操作的一些基本方法
【10月更文挑战第27天】SQL操作的一些基本方法
181 3
下一篇
oss云网关配置