您的位置:首页 > 其它

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

2008-11-06 22:18 316 查看
以下是实现的多种方法,可根据您的自身需要进行使用

//所在周的第一天日期 
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')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐