sql问题 在线等!

kwh050101 2008-06-24 01:45:38
如何写一段sql语句,得出一个日期是当月的第几个星期几,也就是判断当天在该月第几次出现?
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yufenfeila 2008-06-25
  • 打赏
  • 举报
回复
Sorry,虽然结贴了,但还是要修正一下错误
应该是
SELECT (DAY(GETDATE()) - 1) / 7 + 1
kwh050101 2008-06-24
  • 打赏
  • 举报
回复
解决了 谢谢大家
kwh050101 2008-06-24
  • 打赏
  • 举报
回复
SELECT DAY(GETDATE()) / 7 + 1
把GETDATE()换成你要求的日期即可

不行啊,比如2007-01-07得出是2,而实际上它是该月第一个星期天
wzy_love_sly 2008-06-24
  • 打赏
  • 举报
回复
create table tb(日期 datetime)
insert into tb select '2008-06-15'
insert into tb select '2008-06-16'
insert into tb select '2008-06-17'
insert into tb select '2008-06-18'
insert into tb select '2008-06-19'
insert into tb select '2008-06-20'
insert into tb select '2008-06-21'
insert into tb select '2008-06-22'
insert into tb select '2008-06-23'
insert into tb select '2008-06-24'
insert into tb select '2008-06-25'

select *,
日期='第'+ltrim((datepart(dd,日期)-(datepart(dw,日期)+@@datefirst-1)%7)/7)+'周 星期'+replace(ltrim((datepart(dw,日期)+@@datefirst-1)%7),'0','天')
from tb


日期 日期
2008-06-15 00:00:00.000 第2周 星期天
2008-06-16 00:00:00.000 第2周 星期1
2008-06-17 00:00:00.000 第2周 星期2
2008-06-18 00:00:00.000 第2周 星期3
2008-06-19 00:00:00.000 第2周 星期4
2008-06-20 00:00:00.000 第2周 星期5
2008-06-21 00:00:00.000 第2周 星期6
2008-06-22 00:00:00.000 第3周 星期天
2008-06-23 00:00:00.000 第3周 星期1
2008-06-24 00:00:00.000 第3周 星期2
2008-06-25 00:00:00.000 第3周 星期3
s330481 2008-06-24
  • 打赏
  • 举报
回复
获取今天是周几
SELECT DATEPART(dw,GETDATE())

获取今天是第几个周几
SELECT (DAY(GETDATE())-1) / 7 + 1
conan304 2008-06-24
  • 打赏
  • 举报
回复
select datename(weekday,getdate())

select datepart(day,getdate())/7+1
yufenfeila 2008-06-24
  • 打赏
  • 举报
回复
SELECT DAY(GETDATE()) / 7 + 1
把GETDATE()换成你要求的日期即可
kwh050101 2008-06-24
  • 打赏
  • 举报
回复
可能说得不清楚,比如某一天是周一,判断它是该月的第几个周一,以此类推。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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