如何获得本日所在周的第一天日期与最后一天日期

以下是实现的多种方法,可根据您的自身需要进行使用

//所在周的第一天日期 
select dateadd(dd,datediff(dd,'1900-01-01',getdate()) - datepart(dw,getdate()) + 1,'1900-01-01') 
//所在周的最后一天日期 
select dateadd(dd,datediff(dd,'1900-01-01',getdate()) + (7 - datepart(dw,getdate())),'1900-01-01')

--1、当天所在周的第一天(星期天) 
SELECT DATEADD( day, 1 - DATEPART(weekday, convert(char(10),getdate(),12)),convert(char(10),getdate(),12) ) AS 'ThisSunday' 
select dateadd(dd,datediff(dd,'1900-01-01',getdate()) - datepart(dw,getdate()) + 1,'1900-01-01') 
--2、当天所在周的最后一天(星期六) 
SELECT DATEADD( day, 7 - DATEPART(weekday, convert(char(10),getdate(),12)),convert(char(10),getdate(),12) ) AS 'ThisSaturday' 
select dateadd(dd,datediff(dd,'1900-01-01',getdate()) + (7 - datepart(dw,getdate())),'1900-01-01') 
--依次类推可以得到当天所在周任意一天的日期

select getdate()-(datepart(weekday,getdate())-1), getdate()+(7-datepart(weekday,getdate()))

select   dateadd(dd,-(datepart(weekday,getdate())-2),getdate()),dateadd(dd,(7-datepart(weekday,getdate())+1),getdate())


以下是用VB/ASP使用的取当前日期所在周的起目日期
    Function firstdateofthisweek(ByVal d As Object) As Object
        firstdateofthisweek = d - weekday(d) + 1
    End Function


    Function lastdateofthisweek(ByVal d As Object) As Object
        lastdateofthisweek = d - weekday(d) + 7
    End Function

所在月第一天和最后一天的计算方法:

select convert(datetime,convert(char(8),getdate(),120)+'1')

select dateadd(day,-1,convert(char(8),dateadd(month,1,getdate()),120)+'1')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值