SQL Server 某些条件下求某日的日期

server|条件

/*需要得结果: 某一天的日期
已知条件: 这天的年,月,星期几,在这个月中处于第几周

举例说明:  希望求出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)

时间: 2024-09-10 19:39:47

SQL Server 某些条件下求某日的日期的相关文章

Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足

原文:Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足 环境: Sql Server2012 SP3企业版,Windows Server2008 标准版   问题由来: 最近在做DB优化的时候,发现一个存储过程有非常严重的性能问题, 由于整个SP整体逻辑是一个多表关联的复杂的查询,整体结构比较复杂的,通过的分析和尝试, 最后发现问题出在其中一个大表的查询上实现方式上, 因为这个大表上的意外的执行方式,导致其他表无法被驱动,其他表也

sql server数据|sql server数据库入侵渗透~~求大神

问题描述 sql server数据|sql server数据库入侵渗透~~求大神 QQ200832005[招聘]渗透测试工程师(可兼职也可接私活) 技能要求 具有至少1年以上的职业黑客攻击经验,并实际操作过各类项目,拒绝理论派.熟悉渗透测试服务器提权方面. 1.掌握MySQL.MSSQL.Oracle.PostgreSQL等一种或多种主流数据库结构以及特殊性. 2.熟悉渗透测试的步骤.方法.流程.熟练掌握各种渗透测试工具. 3.有主机.网络或Web安全渗透测试相关项目实施经验&. 4.对网站/服

vs2012-SilverLight应用程序里面添加SQL Server数据库失败。求帮助~

问题描述 SilverLight应用程序里面添加SQL Server数据库失败.求帮助~ 刚刚入门购买了<Microsoft Silverlight4 从入门到精通>自学,但学到<第4章--数据和RIA服务>的时候,发现不能像书上说明的那样在VS2012里面添加SQL Server数据库. 文档">

随着下一个预览版本的推出,Linux SQL Server 2017镜像下载量超过了100万

本文讲的是随着下一个预览版本的推出,Linux SQL Server 2017镜像下载量超过了100万[译者的话]这篇文章介绍了在Linux Container中运行SQL Server的方案及其优势以及部分客户案例.SQL Server在很多企业中广泛运用,其容器化所带来的效益值得我们思考和借鉴. [3 天烧脑式容器存储网络训练营 | 深圳站]本次培训以容器存储和网络为主题,包括:Docker Plugin.Docker storage driver.Docker Volume Pulgin.

sql server语句问题-sql server数据库语句问题 求大神帮忙解释

问题描述 sql server数据库语句问题 求大神帮忙解释 select * from Stock where sxrq<'CONVERT(varchar(10), GETDATE(), 23)' sxrq是varchar(10)是表中的日期,格式为xxxx-xx-xx,想用getdate()方法获取当前日期,并且转换成了varchar(10)格式也为xxxx-xx-xx,但执行时sxrq<'CONVERT(varchar(10), GETDATE(), 23)'好像没起到作用,求大神解释.

谢谢大家-无法选择在sql server代理账户下运行

问题描述 无法选择在sql server代理账户下运行 这个怎么解决 解决方案 SQL Server 代理 开机自动运行sql server 2008 Sql server代理无法启动Chapter 1 Securing Your Server and Network(1):选择SQL Server运行账号 解决方案二: 去服务管理器里看一下sql server代理服务启动了没: 如果启动了,把SQL Server服务启动帐户改为网络帐户试一下:

Asp.Net(C#)+Sql Server三层架构下数据存取方案(一)

asp.net|server|架构|数据 引言: 参与了一个大型社区程序的开发,现在将相关开发经验陆续总结出来,和大家探讨一下.本节主要想与大家探讨一种数据读取方案:集合类代替直接从数据库中获取的DataSet,主要好处就是可以解决Sql Server吞吐量的瓶颈问题.一般小数量的程序不会有问题,但数据以十万百万条计的时候,数据库的吞吐量的限制就会表现的比较明显.这里的解决方案其实也就是把海量数据信息分成一条条取出,以频繁取库的代价解决瓶颈限制,其实也就是把数据库服务器的负担让WEB服务器分担了

Redmine+SQL SERVER在Windows下的安装

  我们一直用Redmine做管理项目和系统缺陷跟踪.最近中心开发了微信平台,并引入了电话系统,都是SQL SERVER的,为了与这两个系统集成,算将Redmine改成SQL SERVER. 之前是用Bitnami一键安装的,没想到换个数据库的过程无比曲折.下面列出安装过程,希望对使用Redmine的朋友有帮助. Redmine版本:2.4.3 操作系统:WIN2003 64位,win7 64位一样可以. SQL SERVER:2008 R2 写在前面:不要试图在Bitnami的安装基础上去改.

SQL Server 2008 R2 下如何清理数据库日志文件

 USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE GO USE [数据库名] GO DBCC SHRINKFILE (N'[数据库日志文件名称]' , 0,TRUNCATEONLY) GO USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO