|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
举例说明: 希望求出2004-11-22 已知条件: 2004年, 11 月, 星期一 ,这天在11月是第四面 declare @year numeric(4),@month numeric(2),@weekday varchar(6),@week numeric(1) set @year=2004 set @month=11 set @weekday=\\\'星期一\\\' set @week=4 */ alter function RequestDate (@year numeric(4),@month numeric(2),@weekday varchar(6),@week numeric(1)) returns datetime as begin declare @date1 varchar(10) --得到该月的第一天的日期 declare @month1 varchar(2) if @month<10 set @month1=\\\'0\\\'+ltrim(rtrim(str(@month))) else set @month1=ltrim(rtrim(str(@month))) set @date1=ltrim(rtrim(str(@year))) + \\\'-\\\' + @month1+ \\\'-\\\' + \\\'01\\\' declare @num1 numeric(3) declare @num2 numeric(3) declare @num3 numeric(3) set @num1=datepart(ww,@date1) --得到该月的第一天在该年的周数 set @num1=@num1+@week-2 --得到该月的要求得的那天所在的周数与该年的第一周第一天的周数差 set @num2=datepart(dw,dateadd(ww,@num1,\\\'2004-01-01\\\')) --得到日期对应的星期代号 select @num3=case @weekday when \\\'星期日\\\' then 1 when \\\'星期一\\\' then 2 when \\\'星期二\\\' then 3 when \\\'星期三\\\' then 4 when \\\'星期四\\\' then 5 when \\\'星期五\\\' then 6 when \\\'星期六\\\' then 7 end return dateadd(dd,@num3-datepart(dw,dateadd(ww,@num1,\\\'2004-01-01\\\')),dateadd(ww,@num1,\\\'2004-01-01\\\')) end -- select dbo.RequestDate(2004,11,\\\'星期一\\\',4) 返回类别: 教程 上一教程: ORACLE中解决汉字无法显示、输入问题 下一教程: SQL SERVER和ORACLE常用函数对比 您可以阅读与"SQL SERVER 某些条件下求某日的日期"相关的教程: · 一个得到在两个日期之间的休息日的SQL SERVER 的函数 · 如何使Microsoft SQL Server的日志文件不会增大? · SQL SERVER日期计算 · SQL Server日期计算 · 如何使Microsoft SQL Server的日志文件不会增大? |
| 快精灵印艺坊 版权所有 |
首页 |
||