标题:一个查询语句问题
只看楼主
shenqian5337
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-7-23
 问题点数:0 回复次数:2 
一个查询语句问题
已知表:
id             time
1             2007-10-20 9:30:02
2             2008-11-20 9:30:02
3             2008-10-20 9:30:02
4             2009-2-20 9:30:02
.........
想得出下面的表,weekdays是time里的月份里所包含周末的天数,即当月周六和周日一共的天数
id          time                 weekdays
1        2007-10-20 9:30:02          8
2        2008-11-20 9:30:02          10
3        2008-10-20 9:30:02          8
4        2009-10-20 9:30:02          9
.........
搜索更多相关主题的帖子: 语句 查询 
2008-10-24 11:29
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
得分:0 
以下是未经优化的代码,随便看下:
程序代码:
 
-----获取某月的第一天
create function get_Firstday(@days datetime)
returns datetime
begin
return cast(cast(year(@days) as char(4))+'-'+ cast(month(@days) as nvarchar(2))+'-01' as datetime)
end
程序代码:
 
-----获取某月的最后一天
create function get_Lastday(@days datetime)
returns datetime
begin
return dateadd(day,-1,dbo.get_firstday(dateadd(month,1,@days)))
end

程序代码:
 
----获取某月的长度
create function get_days(@days datetime)
returns int
begin
return datediff(day,dbo.get_firstday(@days),dbo.get_lastday(@days))+1
end
程序代码:
 
---获取某月的周末数
create function get_weekdays(@days datetime)
returns int
begin
declare @ret int;
declare @weekday int;
declare @leftdays int;
set @weekday=datepart(weekday,dbo.get_firstday(@days));
set @leftdays=dbo.get_days(@days) % 7
if @leftdays=0 return 8; -----28天的周末只有8天
if @leftdays=1
  begin 
   if @weekday=7 or @weekday=1 
    return 9
   else
    return 8
  end
if @leftdays=2
  begin
   if  @weekday=7
    return 10
   else if @weekday=1 or @weekday=6
    return 9
   else
    return 8
  end
if @leftdays=3
  begin
   if @weekday=6 or @weekday=7
    return 10
   else if @weekday=1 or @weekday=5 
    return 9
   else
    return 8
  end
return 0 
end

程序代码:
 
---使用方法如:
select id,time,dbo.get_weekdays(time) from 表名

 
经测试有效.


[[it] 本帖最后由 三断笛 于 2008-10-25 03:21 编辑 [/it]]
2008-10-25 03:19
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
得分:0 
三断笛版主很专业.赞一个!

有实力才会有魅力 实力来自坚持不懈的努力
2008-10-28 14:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-240278-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094624 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved