`
izuoyan
  • 浏览: 9228771 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

显示每月的日期属于该月的第几周

阅读更多

问题贴:http://topic.csdn.net/u/20100509/20/045e886c-a38d-4614-a5a4-aa2add05a95b.html?42337

----------------------------------------------------------------------------------

-- Author : htl258(Tony)

-- Date : 2010-05-09 22:04:38

-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

-- Jul 9 2008 14:43:34

-- Copyright (c) 1988-2008 Microsoft Corporation

-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)

-- Blog : http://blog.csdn.net/htl258

-- Subject: 显示每月的日期属于该月的第几周

----------------------------------------------------------------------------------

if object_id('fn_getwk') is not null

drop function fn_getwk

go

create function fn_getwk(

@year int,--输入显示的年份

@month int, --输入显示的月份

@type bit=0 --指定每周的第一天,默认为星期日(中国习惯),如果参数为就是星期一为每周的第一天

) returns @t table(

周数 nvarchar(10),

开始日期 varchar(10),

结束日期 varchar(10)

) as

begin

declare @d datetime

set @d=dateadd(wk,datediff(wk,'1900',cast(ltrim(@year*10000+@month*100+1) as datetime)),'1900')+@type

;with t as

(

select top (datediff(dd,ltrim(@year*10000+@month*100+1),ltrim(@year*10000+(@month+1)*100+1)))

[date]=cast(ltrim(@year*10000+@month*100+1) as datetime)-1

+row_number()over(order by getdate())

from sysobjects

)

insert @t

select

case

when [date] < @d+6 then '第一周'

when [date] < @d+13 then '第二周'

when [date] < @d+20 then '第三周'

when [date] < @d+27 then '第四周'

when [date] < @d+34 then '第五周'

else '第六周'

end AS 周数,

convert(varchar,min([date]),23) 开始日期,

convert(varchar,max([date]),23) 结束日期

from t

group by

case

when [date] < @d+6 then '第一周'

when [date] < @d+13 then '第二周'

when [date] < @d+20 then '第三周'

when [date] < @d+27 then '第四周'

when [date] < @d+34 then '第五周'

else '第六周'

end

order by 2

return

end

GO

select * from fn_getwk(2010,5,0)

select * from fn_getwk(2010,5,0)

/*

周数 开始日期 结束日期

---------- ---------- ----------

第一周 2010-05-01 2010-05-01

第二周 2010-05-02 2010-05-08

第三周 2010-05-09 2010-05-15

第四周 2010-05-16 2010-05-22

第五周 2010-05-23 2010-05-29

第六周 2010-05-30 2010-05-31

(6 行受影响)

*/

select * from fn_getwk(2010,5,1)

/*

周数 开始日期 结束日期

---------- ---------- ----------

第一周 2010-05-01 2010-05-02

第二周 2010-05-03 2010-05-09

第三周 2010-05-10 2010-05-16

第四周 2010-05-17 2010-05-23

第五周 2010-05-24 2010-05-30

第六周 2010-05-31 2010-05-31

(6 行受影响)

*/

分享到:
评论

相关推荐

    根据年月日计算周日期的小程序

    在计算机编程中,周日期通常指的是某一天属于一年中的第几周。这个小程序可能用于数据分析、日程管理或者其他需要按周进行统计或计划的场景。 在描述中提到的“月份调整表”是计算周日期的关键。这是因为不同月份的...

    日期效果, 以 周 为 单 位,经过自己修改后,周.rar

    1. **日期计算**:开发者需要编写函数来获取当前周的起始日期和结束日期,这通常涉及到对日期对象的加减操作,并考虑到不同的周首日设定(如周一或周日作为一周的第一天)。 2. **日历布局**:创建一个HTML结构来...

    网页内日期表显示

    例如,我们可以创建一个9行7列的表格来代表一个月的日历,每一行代表一周,每一列代表一天。表头`&lt;thead&gt;`可以用来设置星期几的名称,表体`&lt;tbody&gt;`则用于填充具体的日期。 ```html &lt;tr&gt;&lt;th&gt;日&lt;/th&gt;&lt;th&gt;一&lt;/th&gt;...

    月视图和周视图切换控件

    - **星期几计算**:`Tygetdateofweek` 函数根据星期几名称返回该星期几对应的天数偏移量(即星期一对应 1,星期二对应 2 等),以便计算本周第一天的准确日期。 #### 结论 综上所述,“月视图和周视图切换控件”...

    输入星期显示日历

    【标题】"输入星期显示日历"涉及到的编程任务是创建一个程序,用户可以输入一个年份和该年第一天的星期几(例如,1代表星期一,2代表星期二等),然后程序会在控制台显示出该年的完整日历。这个任务需要结合日期处理...

    QML日历+选定日期显示

    在实际项目中,你可能还需要考虑更多的细节,例如日期的合法性检查、多语言支持、周日或周一作为一周的第一天的设置等。此外,为了提高可复用性和可维护性,还可以将日历的每个日期项封装为单独的QML组件,然后在主...

    jQuery日历周历月历插件

    2. **日期计算**:插件提供了一个功能,可以输入日期后得到该日期在当月的第几周。这对于安排会议、计划项目或者统计工作进度非常有用。此外,它还能计算出每月的总天数,这对于那些需要按月进行统计的应用来说是必...

    javascript-calendar:日历显示周

    为了显示一周的日期,我们需要遍历该月的所有日期,并按周进行组织。这可以通过一个循环来实现,每次循环中,我们检查当前日期的getDay()值是否与一周的开始相符。如果相符,我们就开始新的一行,即新的一周。在循环...

    Oracle中几个关于日期方面的SQL实例

    使用`to_char()`函数结合日期格式模型`'W'`可以获取当前日期是本月的第几周。例如: ``` SELECT to_char(sysdate,'W') FROM dual; ``` 这里`'W'`表示一周的第一天默认为星期一,如果需要将星期日作为一周的第一...

    C++日历(显示当前日期月份)

    这个函数计算了当前日期在一年中的第几天,并进一步确定了这一天是一周中的哪一天。 6. **输出日历** ```cpp printf("%d%d\n", year, local-&gt;tm_mon + 1); printf("\n"); ... for (int m = 1; m [j]; m++) {...

    c#得到本月有几周和这几周的起止时间示例代码

    接着,我们确定该月的第一天是星期几,这可以通过`DayOfWeek`属性转换为整数来实现。如果第一天是周日(`dayOfWeek == 0`),那么这一周就从这一天开始,否则从下一天开始。 接下来,我们初始化第一周的结束日期,...

    16种oracle查询日期语句.pdf

    使用`to_char(sysdate, 'WW')`可以获取当前日期是本月的第几周,其中`'WW'`格式模型表示星期几作为一周的开始,而`'W'`表示一周的第一天是周日。 2. 获取当前日期是星期几(数字表示): `to_char(sysdate, 'D')`...

    ABAP常用日期函数总结.doc

    该函数可以计算当前日期是当年的第几周,该函数可以用于计算员工的工作周数、计算一年中的周数等。 4.Week_get_first_day函数:获取该周第一天 该函数可以获取当前周的第一天,该函数可以用于计算当前周的工作天数...

    16种oracle查询日期语句.docx

    1. 获取当前日期是本月的第几周: 使用`to_char`函数和日期格式模型'YYYYMMDD W HH24:MI:SS',可以获取日期所在的周数。例如`to_char(sysdate,'W')`返回当前日期是一周中的第几天。 2. 获取当前日期是一周中的第几...

    oracle日期函数

    同样,`'Q'`表示季度,`'MM'`表示两位数的月份,`'RM'`表示罗马数字表示的月份,`'Month'`显示完整的月份名称,`'WW'`显示当年的第几周,`'W'`显示本月的第几周,`'DDD'`表示当年的第几天,`'DD'`表示当月的第几天,...

    python中日期和时间格式化输出的方法小结

    - `%W` 显示一年中的第几周,以星期一为一周的第一天。 - `%y` 显示两位数年份,例如"13"。 - `%Y` 显示四位数年份,例如"2013"。 使用这些符号,开发者可以根据需要将日期时间格式化为多种多样的格式。例如,如果...

    Access DLC日期时间篇教程

    5. **找到每月最后一个特定星期几**:`abc`函数是一个公共函数,它接受一个日期和一个星期几的数字,返回该月的最后一个指定星期几。通过减去i天,然后检查星期几的值,可以找到目标日期。 6. **DateAdd函数**:...

    Web前端开发技术-综合案例(制作年历).pptx

    - 对每月日期进行遍历:同样,对于每个月,可以再次使用`for`循环遍历从1到该月最大天数的所有日期。 5. **布局与样式**: - HTML结构:设计HTML页面来展示年历,这可能包括表格元素 `&lt;table&gt;`,表头 `&lt;thead&gt;`,...

    java编写的日历类程序,输入年份和月份,打印出该月的日历

    - 获取当前日期是一周中的第几天:`int week = cd.get(Calendar.DAY_OF_WEEK);` - 这里 `week` 的取值范围是1到7,分别代表星期日到星期六。 - 计算首行空格数:`int len = week - 1;` - **日期输出**: - 输出...

Global site tag (gtag.js) - Google Analytics