怎么求每个月的最后一个周五?

ibicf 2006-06-19 03:55:58
各位老大,怎么用sql求每个月的最后一个周五?谢谢先
...全文
536 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nate_liu 2006-06-19
  • 打赏
  • 举报
回复
參看這里
http://jinliangliu.cnblogs.com/archive/2006/06/19/429559.html
ibicf 2006-06-19
  • 打赏
  • 举报
回复
谢谢各位!
LouisXIV 2006-06-19
  • 打赏
  • 举报
回复
--改良一下,可以用参数

declare @date datetime

set @date=getdate()

select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,26-datepart(day,@date),@date)),4)
fcuandy 2006-06-19
  • 打赏
  • 举报
回复
我算的不准,呵呵,忘记最后一天如果是星期五了.
拓狼 2006-06-19
  • 打赏
  • 举报
回复
create function f_getlastFriday(
@chr varchar(7)
) returns datetime
as
begin
declare @re datetime
select @re=dateadd(day,-1,dateadd(month,1,@chr+'-01'))
while datepart(dw,@re)<>6
select @re=Dateadd(day,-1,@re)
return(@re)
end
go

调用示例:
select dbo.f_getlastFriday('2006-05')
fcuandy 2006-06-19
  • 打赏
  • 举报
回复
DECLARE @s CHAR(20),@nexts CHAR(20),@last6 DATETIME
SET @s='2006-6' --假设你要求的年月:求2006年6月最后一个星期五是哪天
SET @s=RTRIM(@s)+'-1'
SET @nexts=DATEADD(m,1,@s)
SET @nexts=DATEADD(d,-1,RTRIM(YEAR(@nexts)) + '-' + RTRIM(MONTH(@nexts)) + '-1')
SELECT @last6=DATEADD(d,-(DATEPART(WEEKDAY,@nexts)+1),@nexts)
SELECT DATENAME(WEEKDAY,@last6),@last6
LouisXIV 2006-06-19
  • 打赏
  • 举报
回复
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,26-datepart(day,getdate()),getdate())),4)
addwing 2006-06-19
  • 打赏
  • 举报
回复
留念,学习,帮你顶!


老大的书上有 详细说明
ibicf 2006-06-19
  • 打赏
  • 举报
回复
up

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧