当前位置:首页 > 技术心得 > 正文内容

SQL计算两个日期间的所有月份(天数)列表

xjtudll2年前 (2024-10-16)技术心得7210


-SQL根据两个日期计算出中间所有的月份


-- 方法一,利用SQL常量表master.dbo.spt_values


Select convert(varchar(10),DATEADD(mm,number,'2020-05-10' ),120) As 日期 

From master.dbo.spt_values

Where Type='P' and DATEADD(mm,number,'2020-05-10' )<='2021-4-10' ORDER BY 日期




-- 方法2 用存储过程


declare @t1 datetime,@t2 datetime,@t3 datetime

set @t1 = '2020-05-10'

set @t2 = '2021-4-10'

set @t1=DATEADD(mm, -1, @t1)

set @t2=DATEADD(mm, -1, @t2)

set @t3 = @t1

while datediff(d,@t3,@t2) >=0

    begin

        select @t3 = dateadd(mm,1,@t3)

        print convert(varchar(10),@t3,120)

    end



方法一:

20210407213818484

方法二:

20210407213818570

说明:如果要计算天数则把MM改成DD就行了

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/689/

标签: SQL
分享给朋友:

“SQL计算两个日期间的所有月份(天数)列表” 的相关文章

“数据类型 varchar 和 bit 在 add 运算符中不兼容”解决方法

      在SQL 2005中出现“数据类型 varchar 和 bit 在 add 运算符中不兼容”只需用convert()函数       如要把一个bit类型的变量@n...

BOS单据的单据体字段支持F7选择用户的插件示例代码

https://vip.kingdee.com/article/46700727729979392 Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)...

Android x86 4.4 RC2卡在跳过Wifi后面一步

Android x86 4.4 RC2卡在跳过Wifi后面一步

问题:Android x86 4.4 RC2卡在跳过Wifi后面一步,没法跳过,一直死循环。 无论怎么改都在这步了, 返回了也不知道从哪可以跳过。   解决办法: 一、在语言选择界面用鼠标在 左上-右上-右下-左下 四个角各点一遍 这个方法不知道是谁试出来的,这么扯蛋的办法都能想到。 二...

水晶报表字符串字体大小根据字数调整

在实际应用中,可能需要根据字数多少来调整字体的大小。简单介绍一个方法。          选择要设置的字段,右键->设置对象格式->字体->大小,单击右边的x+2进入公式工作室,输入如下代码: if L...

Altium 比较两个PCB的不同

Altium 比较两个PCB的不同

一般情况下,我们如果修改了PCB,都会标明大概修改了什么地方。但是有的时候,我们修改了PCB,却忘了标明改了什么地方,由于改动较小,过了一段时间之后,彻底忘了改了哪里。这时候要想知道改了哪里,该如何做? 首先,要说明的是,Altium本身的Compare功能是针对project自身的历史版本的(既可...

Mac OSX LaunchPad图标删除

Mac OSX LaunchPad图标删除

近期,安装了Adobe Fireworks CS4,由于是英文版的,所以找了个汉化补丁,汉化后,在LaunchPad里就出现了一个莫名其妙的图标。“WangYu(长发)”,而且无法删除。如下图所示。 这个“WangYu(长发)”没有任何作用,打开后发...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。