显示每月的日期属于该月的第几周
来源:互联网 发布:修改手机mac地址软件 编辑:程序博客网 时间:2024/04/28 05:36
问题贴: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 行受影响)
*/
- 显示每月的日期属于该月的第几周
- 显示每月的日期属于该月的第几周
- 显示每月的日期属于该月的第几周
- 显示每月的日期属于该月的第几周
- 显示每月的日期属于该月的第几周
- 每月第几周的算法
- delphi中计算指定日期是该月第几周的函数
- 计算当前年月日属于该年第几个 月 双月 季度 半年 的算法
- 获取指定日期在该年(月)中属于第几个星期
- 取某一天是该月的第几周
- 日期转换成该年的第几周
- JS获得指定日期是该年的第几周
- 在统计每月信息的时候,有时候该月没有信息,但是还是显示出来
- 某年某月某日属于某月的第几周
- Java 日期加减 该当日期是所在月的第几周 所在月的最后一天
- 根据日期计算属于第几周(周日是一周的第一天)
- 日期属于一年中的第几周
- Java获取日期属于当年第几周
- APN
- 运用fstream对文本文件进行指定读取、删除,指定位置添加一行操作类
- 算法笔记
- 开始学习SQL Server 2008 Internals
- Windows消息机制要点(二)
- 显示每月的日期属于该月的第几周
- 新手自我介绍
- 使用运算符重载所犯的一个错误
- 关于OFFICE/WORD里无法插入特殊字符的问题
- 537-- Artificial Intelligence?
- 表达式求值C++版
- 客户端与服务器通信
- 初学JBPM—简单的请假流程
- Windows消息机制要点(一)