MSSQL日期的月末月初值获取

楼主
我是社区第66355位番薯,欢迎点我头像关注我哦~
经过多次的查询测试,终于得到了某个日期(rq1)的月初和某个日期(rq2)的月末,供有需要的FR友参考。

数据库环境为MSSQL
月初: DATEADD(day,-DATEPART(day, '${rq1}')+1,'${rq1}')+' 00:00:00'
           日期加(-日期天数+1)天数的那个日期即是月初
月末: DATEADD(day,-DATEPART(day, DATEADD(day,-DATEPART(day, '${rq2}')+32,'${rq2}')),DATEADD(day,-DATEPART(day, '${rq2}')+32,'${rq2}'))+' 23:59:50'
           月初+32天后减去相应天数的日期,即为月末日期。这里主要考虑月末有可能是28,29,30,31天问题。
分享扩散:

沙发
发表于 2016-6-22 11:06:25
计算月末日期可以考虑用下月第一天减一天的方法试试
板凳
发表于 2021-10-14 13:19:17
DATEPART 函数数据集保存,数据库正常运行select         
                        DISTINCT
                         A.OrderBy_Code as 客户编码
                        ,A1.OrderBy_Name as 客户名字
                        ,A2.ItemInfo_ItemName as 料品名字
                        ,A2.ItemInfo_ItemCode as 料号
                        --,A2.ShipQtyInvAmount as 数量
                        --,A.CreatedOn AS 历史出货时间
                        --,A.CreatedBy AS 历史出货制单人
                        --,A.DocNo AS 对应销售订单号
                        ,A.BusinessDate as 业务时间
                        ,DATEPART(year, BusinessDate) as 业务年份
                        ,DATEPART(month, BusinessDate) as 业务月份
                        ,DATEPART(year, getdate()) as 当前年份
                        ,DATEPART(month,getdate()) as 当前月份
from SM_Ship as A
inner join [SM_Ship_Trl] as A1 on (A1.SysMlFlag = 'zh-CN') and (A.[ID] = A1.[ID])
inner join [SM_ShipLine] as A2 on (A.[ID] = A2.[Ship])
where  1=1
and DATEPART(year, BusinessDate)=DATEPART(year, getdate())
and DATEPART(month, BusinessDate)=DATEPART(month,getdate())
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表