SQL Server常用日期计算

获取本周、本月、本季、本年的第一天和最后一天
YTD|MTD|WTD|LMD|LWD计算

DECLARE @today datetime
SET @today = GETDATE()
-- TRAGET DATE
-- [本年第一天,本年最后一天]
SELECT 'YTD' AS CATEGORY_TIME
    ,@today AS CURRENT_DAY
    ,DATEADD(year, -1, @today) AS LAST_CURRENT_DAY -- 同期
    ,DATEADD(year, DATEDIFF(year, 0, @today), 0)  AS START_DAY 
    ,DATEADD(year, DATEDIFF(year, -1, @today), -1)  AS END_DAY
UNION ALL 
--[本月第一天,本月最后一天]
SELECT 'MTD' AS CATEGORY_TIME
    ,@today AS CURRENT_DAY
    ,DATEADD(month, -1, @today)  AS LAST_CURRENT_DAY -- 同期
    ,DATEADD(month, DATEDIFF(month, 0, @today), 0)  AS START_DAY 
    ,DATEADD(month, DATEDIFF(month, -1, @today), -1)  AS END_DAY
UNION ALL 
-- [本周第一天,本周最后一天]
SELECT 'WTD' AS CATEGORY_TIME
    ,@today AS CURRENT_DAY
    ,DATEADD(day, -7, @today)  AS LAST_CURRENT_DAY -- 同期
    ,DATEADD(day,-(DATEPART(weekday,@today)-1),@today) AS START_DAY 
    ,DATEADD(day,-(DATEPART(weekday,@today)-1)+6,@today)  AS END_DAY
UNION ALL 
-- [上月第一天,上月最后一天]
SELECT 'LMD' AS CATEGORY_TIME
    ,@today AS CURRENT_DAY
    ,DATEADD(month, -1, @today)  AS LAST_CURRENT_DAY -- 同期
    ,DATEADD(month, DATEDIFF(month, 0, DATEADD(month, -1,@today)), 0) AS START_DAY 
    ,DATEADD(month, DATEDIFF(month, -1, DATEADD(month, -1,@today)), -1) AS END_DAY
UNION ALL 
-- [上周第一天,上周最后一天]
SELECT 'LWD' AS CATEGORY_TIME
    ,@today AS CURRENT_DAY
    ,DATEADD(day, -7, @today)  AS LAST_CURRENT_DAY -- 同期
    ,DATEADD(day,-(DATEPART(weekday,DATEADD(ww, -1,@today))-1),DATEADD(ww, -1,@today)) AS START_DAY 
    ,DATEADD(day,-(DATEPART(weekday,DATEADD(ww, -1,@today))-1)+6,DATEADD(ww, -1,@today)) AS END_DAY 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值