方法一:set @EndDate = dateadd(month, datediff(month, -1, @StoredDate), -1)

@StoredDate为本月的任意一天

这里datediff(month, -1, @StoredDate)会返回从1900年1月1日为基准,算出此基准到@StoredDate的所有月数,再加上1(如果第二个参数为0,则不用加1)

dateadd(month, 0, 0) 返回:1900-01-01 00:00:00.000

dateadd(month, 0, -1) 返回:1899-12-31 00:00:00.000所以最后一个参数表示天数,正数就加,负数为减;

dateadd(month, 1, 0) 返回:1900-02-01 00:00:00.000所以第二个参数表示月数,正数为加,负数为减

由此可以推出:dateadd(month, datediff(month, -1, @StoredDate), -1) 为从1900年1月1日到@StoredDate的月数加1,转化为现在的月份(并且是第一天),然后天数减去1,也可以将datediff(month, -1, @StoredDate)理解为获取到下个月的所有月数,然后在此基础上再减去1天,就是@StoredDate所在本月最后一天

方法二:set @EndDate = dateadd(ms, -3, dateadd(MONTH, datediff(MONTH, 0, @StoredDate) + 1, 0))

@StoredDate为本月的任意一天

同上,datediff(MONTH, 0, @StoredDate) + 1表示获取到本月的所有月数再加1,即获取到下月的所有月数,dateadd(MONTH, datediff(MONTH, 0, @StoredDate) + 1, 0)则表示获取下月第一天,再减去3个毫秒,得到本月最后一天的23:59:59.997,这里只是取了个巧而已

这两种方法,虽然没有什么好坏之分,只要结果正确就行,但是个人觉得其实第一种方法更简便些,毕竟少绕一次

SQL Server:获取本月最后一天[转]的更多相关文章

  1. SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录

    本文主要向大家介绍了SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. datediff(we ...

  2. Sybase:获取本月最后一天的日期的实现方法

    Sybase:获取本月最后一天的日期的实现方法 Oracle中查询月底那天的日期的函数为:last_day(). 在ASE中没有对应的函数,在Oracle移植到Sybase的时候,需要手动编写函数来实 ...

  3. SQL Server获取下一个编码字符串的实现方案分割和进位

        我在前一种解决方案SQL Server获取下一个编码字符实现和后一种解决方案SQL Server获取下一个编码字符实现继续重构与增强两篇博文中均提供了一种解决编码的方案,考虑良久对比以上两种方 ...

  4. SQL Server获取下一个编码字符实现继续重构与增强

        我在SQL Server获取下一个编码字符实现的博文中,虽然实现了这个问题,但是感觉维护起来比较麻烦,例如如果调整编码字符串的固定长度,就需要变更三个函数,这样的为何成本确实比较大.面向对象编 ...

  5. SQL SERVER获取数据库文件信息

        MS SQL SERVER 获取当前数据库文件等信息,适用于多个版本: SELECT dbf.file_id AS FileID , dbf.name AS [FileName] , s.fi ...

  6. SQL Server获取指定行的数据

    SQL Server获取指定行(如第二行)的数据   --SQL Server获取指定行(如第二行)的数据-- --法一(对象法)-- select * from ( select * , numbe ...

  7. 常用脚本--SQL Server获取OS日志

    --=================================================== --SQL Server获取OS日志: ), ), ), ) select @start_d ...

  8. moment.js(moment-in-node.js)获取本月最后一天 不指定

    http://tommyhu.cn/moment-in-nodejs/ //获取本月最后一天 to=using.moment(日期).endOf('month').format("YYYY- ...

  9. SQL Server 获取本周,本月,本年等时间内记录

    datediff(week,zy_time,getdate())=0 //查询本周 datediff(month,zy_time,getdate())=0 //查询本月 本季:select * fro ...

随机推荐

  1. 用matplotlib获取雅虎股票数据并作图

    matplotlib有一个finance子模块提供了一个获取雅虎股票数据的api接口:quotes_historical_yahoo_ochl 感觉非常好用! 示例一 获取数据并作折线图 import ...

  2. 02-分页器,自定义分页器,解耦函数分页器,分页器class

    1 .批量数据导入 主url from django.contrib import admin from django.urls import path, re_path, include urlpa ...

  3. 微服务介绍及Asp.net Core实战项目系列

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 二.目录 0.微服务介绍 1.RESTful API 规范介绍 2.asp.net core介绍及swagger使用 3.asp. ...

  4. 总结几种常见web攻击手段及其防御方式

    本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 ...

  5. c#_导出table功能

    一:第一张导出方法,简单快捷 请注意:一般表格都有真分页,查询数据时候注意把分页条件去掉#region 此处是获取的list数组 然后转table再调用ExportExcel var list=&qu ...

  6. 基于Centos7的比特币源码编译

    因为一直比较熟悉Windows平台的开发,本来打算在windows下进行编译,但查了一些文章,发现还是在linux下编译成本最低,所以这里就以手头现有的Centos7环境进行代码编译.   一.代码获 ...

  7. WebGL——水波纹特效

    大家好,今天我ccentry要做一个水波纹特效,我们来看看水波纹特效的做法.首先我们来看一下水波纹特效的效果是怎么样的,请看下图. 我们要做的就是类似这种纹理特效,那么我们来看看是如何制作的吧.首先鲫 ...

  8. OpenGL学习笔记(2) 画一个正方形

    画一个正方形 其实,画正方形就是画两个三角形,用四个顶点以及使用索引来实现 完整代码在Square项目的Application.cpp里 先贴上窗口初始化代码 void BaseInit() { gl ...

  9. Unity 实现一个简单的 TPS 相机

    效果如下: 代码如下: public class TPSCamera : MonoBehaviour { /// <summary> /// 目标对象 /// </summary&g ...

  10. == 和 equals 的区别是什么?

    已经有很多人说过二者的区别了,我直接上代码. String strA = "123"; String strB = "123"; String strC = & ...