求一个日期 周几的问题

mingyicz 2009-06-16 04:40:36
2009-6-16日星期二
2009-6-16日前一年相同的日期2008-6-16,求最靠近2008-6-16日且周期也为星期二的日期是多少?
...全文
39 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
chowyi 2009-06-17
  • 打赏
  • 举报
回复
学习了......
等待戈多12 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fkcqzwx 的回复:]
SQL code
select dateadd(d,2-(datepart(weekday,dateadd(yy,-1,'2009-06-16'))+@@datefirst-2)%7-1,dateadd(yy,-1,'2009-06-16'))
[/Quote]
第一个2,改成几就是星期几
feixianxxx 2009-06-16
  • 打赏
  • 举报
回复
这个是任意一天的情测试
declare @input datetime, @n int
set @input='2009-6-16'
set @n=(select datepart(dw, @input))
select
dateadd(day,
case (datepart(dw, dateadd(year,-1,@input))-1)
when 0 then abs(0-@n+1)
when 1 then abs(1-@n+1)
when 2 then abs(2-@n+1)
when 3 then abs(3-@n+1)
when 4 then abs(4-@n+1)
when 5 then abs(5-@n+1)
when 6 then abs(6-@n+1)
end,
dateadd(year,-1,@input) )
/*-------------
2008-06-17 00:00:00.000

---------*/
mingyicz 2009-06-16
  • 打赏
  • 举报
回复
此贴作废!!!!
可以在这里看到相同的帖子!!
http://topic.csdn.net/u/20090616/16/67111d0b-053e-4d32-94c2-2babe022ffcf.html?seed=1071885970
mingyicz 2009-06-16
  • 打赏
  • 举报
回复
应该需要任意时间都正确才行 不能只针对星期二[Quote=引用 17 楼 feixianxxx 的回复:]
现在给出的这些方法都是在确定是星期2的情况。。 不全。
[/Quote]
mingyicz 2009-06-16
  • 打赏
  • 举报
回复
好的。。。刚才在另外一个相同的贴里回了你。。。[Quote=引用 15 楼 sjcss 的回复:]
lz,你测一下12楼的对不对?给个话。
[/Quote]
feixianxxx 2009-06-16
  • 打赏
  • 举报
回复
现在给出的这些方法都是在确定是星期2的情况。。 不全。
ai_li7758521 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lgx0914 的回复:]
SQL codedeclare @date datetime
set @date='2009-6-16'
select
dateadd(day,
case datepart(weekday, dateadd(year,-1,@date))
when 7 then 3
when 1 then 2
when 2 then 1
when 3 then 0
when 4 then -1
when 5 then -2
when 6 then -3
end,
dateadd(year,-1,@date) )
[/Quote].
美到心痛 2009-06-16
  • 打赏
  • 举报
回复
lz,你测一下12楼的对不对?给个话。
csdyyr 2009-06-16
  • 打赏
  • 举报
回复
刚才问过了。
mingyicz 2009-06-16
  • 打赏
  • 举报
回复
那就是前一年的今天[Quote=引用 10 楼 feixianxxx 的回复:]
LZ 我想问下 如果出现前一年的今天也是跟今天一样是星期2 怎么办?
[/Quote]
美到心痛 2009-06-16
  • 打赏
  • 举报
回复
declare @input datetime
set @input='2009-06-16'
select
dateadd(day,
case ( datepart(weekday,@input )- datepart(weekday,dateadd(year,-1,@input) ))
when 0 then 0
when 1 then 1
when 2 then 2
when 3 then 3
when 4 then -3
when 5 then -2
when 6 then -1
when -1 then -1
when -2 then -2
when -3 then -3
when -4 then 3
when -5 then 2
when -6 then 1
end,
dateadd(year,-1,@input) )
等待戈多12 2009-06-16
  • 打赏
  • 举报
回复

select dateadd(d,2-(datepart(weekday,dateadd(yy,-1,'2009-06-16'))+@@datefirst-2)%7-1,dateadd(yy,-1,'2009-06-16'))
feixianxxx 2009-06-16
  • 打赏
  • 举报
回复
LZ 我想问下 如果出现前一年的今天也是跟今天一样是星期2 怎么办?
等待戈多12 2009-06-16
  • 打赏
  • 举报
回复

select dateadd(d,(datepart(wk,dateadd(yy,-1,'2009-06-16'))-1)*7,convert(varchar(5),dateadd(yy,-1,'2009-06-16'),120)+'01-01')
guguda2008 2009-06-16
  • 打赏
  • 举报
回复
我就知道打开帖子刷新几遍答案就出来了
playwarcraft 2009-06-16
  • 打赏
  • 举报
回复
......
usher_gml 2009-06-16
  • 打赏
  • 举报
回复
select
dateadd(day,
case datepart(weekday, dateadd(year,-1,getdate()))
when 7 then 3
when 1 then 2
when 2 then 1
when 3 then 0
when 4 then -1
when 5 then -2
when 6 then -3
end,
dateadd(year,-1,getdate()))
ks_reny 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ks_reny 的回复:]
SQL code
select dateadd(d,-abs(datepart(dw,getdate())- datepart(dw,dateadd(yy,-1,getdate()))),dateadd(yy,-1,getdate())), dateadd(d,abs(datepart(dw,getdate())- datepart(dw,dateadd(yy,-1,getdate()))),dateadd(yy,-1,getdate()))
--------------------------------
2008-06-15 16:48:04.593 2008-06-17 16:48:04.593
[/Quote]
修改一下格式

select dateadd(d,-abs(datepart(dw,getdate())- datepart(dw,dateadd(yy,-1,getdate()))),dateadd(yy,-1,getdate())) as a,
dateadd(d,abs(datepart(dw,getdate())- datepart(dw,dateadd(yy,-1,getdate()))),dateadd(yy,-1,getdate())) as b
----------------------------------------------------
a b
2008-06-15 16:50:16.030
2008-06-17 16:50:16.030
ws_hgo 2009-06-16
  • 打赏
  • 举报
回复
declare @sql datetime
declare @i int
set @sql='2008-6-16'
set @i=(select datepart(wk,@sql))
select @i
select dateadd(day,(@i-1)*7,'2008-1-1')

-----------------------
2008-06-17 00:00:00.000

(1 行受影响)
加载更多回复(3)

34,871

社区成员

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

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