当前位置: 首页 > news >正文

SQL server 2008 获取当前年,季度 和月的最后一天

IF @DateThreshold IS NULL  
        SET @DateThreshold = CONVERT(DATE, GETDATE() - 1)

    DECLARE @Date DATE = @DateThreshold
  
    -- 获取年份和季度  
    DECLARE @Year INT = YEAR(@Date) 
    DECLARE @Quarter INT = (MONTH(@Date) - 1) / 3 + 1 
  
    -- 计算下季度的最后一个月份的第一天  
    DECLARE @FirstDayOfNextQuarter DATE = DATEADD(MONTH, @Quarter * 3, DATEADD(YEAR, @Year - 1900, 0))     
    DECLARE @LastDayOfQuarter DATE = DATEADD(DAY, -1, @FirstDayOfNextQuarter)
     -- 减去一天得到当前季度的最后一天  
    print(@LastDayOfQuarter)
 
    DECLARE @LastDayOfYear DATE = CAST(CAST(@Year AS VARCHAR) + '-12-31' AS DATE);
    print(@LastDayOfYear)
  
    -- 直接计算该月份的最后一天  
    DECLARE @LastDayOfMonth DATE = DATEADD(DAY, -1, DATEADD(MONTH, 1, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)))
    print(@LastDayOfMonth)

    -- 直接计算上1个月份的最后一天  
    DECLARE @LastDayOf1Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, 0, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf1Month)

    -- 直接计算上2个月份的最后一天  
    DECLARE @LastDayOf2Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)))  
    print(@LastDayOf2Month)

    -- 直接计算上3个月份的最后一天  
    DECLARE @LastDayOf3Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -2, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)))
    print(@LastDayOf3Month)

    -- 直接计算上4个月份的最后一天  
    DECLARE @LastDayOf4Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -3, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf4Month)

    -- 直接计算上5个月份的最后一天  
    DECLARE @LastDayOf5Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -4, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)))
    print(@LastDayOf5Month)

    -- 直接计算上6个月份的最后一天  
    DECLARE @LastDayOf6Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -5, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf6Month)

    -- 直接计算上7个月份的最后一天  
    DECLARE @LastDayOf7Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -6, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf7Month)

    -- 直接计算上8个月份的最后一天  
    DECLARE @LastDayOf8Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -7, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)))
    print(@LastDayOf8Month)

    -- 直接计算上9个月份的最后一天  
    DECLARE @LastDayOf9Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -8, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)))
    print(@LastDayOf9Month)

    -- 直接计算上10个月份的最后一天  
    DECLARE @LastDayOf10Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -9, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf10Month)

    -- 直接计算上11个月份的最后一天  
    DECLARE @LastDayOf11Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -10, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf11Month)

    -- 直接计算上12个月份的最后一天  
    DECLARE @LastDayOf12Month DATE = DATEADD(DAY, -1, DATEADD(MONTH, -11, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0))) 
    print(@LastDayOf12Month)
 


http://www.mrgr.cn/news/7813.html

相关文章:

  • 【C++ 面试 - 面向对象】每日 3 题(十)
  • 常用的分类算法及其优缺点
  • DevEco Studio 预览器报错踩坑
  • AI大模型日报#0823:GPT-4无师自通预测蛋白质结构登Nature子刊、豆包版《Her》升级上新
  • 设计模式-命令模式
  • 【大数据算法】一文掌握大数据算法之:时间亚线性算法。
  • 获取阿里云Docker镜像加速器地址
  • Linux(CentOS7)虚拟机安装教程
  • Appium学习
  • Redis:Redis为什么快
  • 若依/vue2引入threejs展示glb/gltf模型,以及画布截图功能
  • 如何选择需求跟踪管理软件?8款优质推荐
  • 数据结构-栈与队列-数组和链表的推广运用-第六天
  • 云计算实训33——高并发负载均衡项目(eleme)
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • Pytorch cat()与stack()函数详解
  • 嵌入式学习(网络通信UDP\TCP)
  • iOS工程:获取手机相册权限,iOS原生系统弹窗, Privacy隐私政策选择,如何添加系统弹出并修改描述文字
  • 如何在 Ubuntu 系统中安装PyCharm集成开发环境?
  • 当前A股平均市盈率