- 浏览: 209146 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
q10000000:
你好 适用madMadia点击上传到服务器 没有反应啊LZ
在项目中整合FCKeditor文本编辑器 -
liweixxxx1990:
spring本版是3.0的(和版本也有关系吗?) 配置用到了s ...
struts2+spring发送mail -
floger:
liweixxxx1990 写道我照着你这个写的出现了下面的错 ...
struts2+spring发送mail -
liweixxxx1990:
我照着你这个写的出现了下面的错误,怎么解决啊??:Messag ...
struts2+spring发送mail -
jueyue:
不错,把问题解决了
Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决
工作日处理函数(标准节假日).sql
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDay] GO --计算两个日期相差的工作天数 CREATE FUNCTION f_WorkDay( @dt_begin datetime, --计算的开始日期 @dt_end datetime --计算的结束日期 )RETURNS int AS BEGIN DECLARE @workday int,@i int,@bz bit,@dt datetime IF @dt_begin>@dt_end SELECT @bz=1,@dt=@dt_begin,@dt_begin=@dt_end,@dt_end=@dt ELSE SET @bz=0 SELECT @i=DATEDIFF(Day,@dt_begin,@dt_end)+1, @workday=@i/7*5, @dt_begin=DATEADD(Day,@i/7*7,@dt_begin) WHILE @dt_begin<=@dt_end BEGIN SELECT @workday=CASE WHEN (@@DATEFIRST+DATEPART(Weekday,@dt_begin)-1)%7 BETWEEN 1 AND 5 THEN @workday+1 ELSE @workday END, @dt_begin=@dt_begin+1 END RETURN(CASE WHEN @bz=1 THEN -@workday ELSE @workday END) END GO /*=================================================================*/ if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDayADD]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDayADD] GO --在指定日期上,增加指定工作天数后的日期 CREATE FUNCTION f_WorkDayADD( @date datetime, --基础日期 @workday int --要增加的工作日数 )RETURNS datetime AS BEGIN DECLARE @bz int --增加整周的天数 SELECT @bz=CASE WHEN @workday<0 THEN -1 ELSE 1 END ,@date=DATEADD(Week,@workday/5,@date) ,@workday=@workday%5 --增加不是整周的工作天数 WHILE @workday<>0 SELECT @date=DATEADD(Day,@bz,@date), @workday=CASE WHEN (@@DATEFIRST+DATEPART(Weekday,@date)-1)%7 BETWEEN 1 AND 5 THEN @workday-@bz ELSE @workday END --避免处理后的日期停留在非工作日上 WHILE (@@DATEFIRST+DATEPART(Weekday,@date)-1)%7 in(0,6) SET @date=DATEADD(Day,@bz,@date) RETURN(@date) END
工作日处理函数(自定义节假日).sql
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->if exists (select * from dbo.sysobjects where id = object_id(N'[tb_Holiday]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [tb_Holiday] GO --定义节假日表 CREATE TABLE tb_Holiday( HDate smalldatetime primary key clustered, --节假日期 Name nvarchar(50) not null) --假日名称 GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDay] GO --计算两个日期之间的工作天数 CREATE FUNCTION f_WorkDay( @dt_begin datetime, --计算的开始日期 @dt_end datetime --计算的结束日期 )RETURNS int AS BEGIN IF @dt_begin>@dt_end RETURN(DATEDIFF(Day,@dt_begin,@dt_end) +1-( SELECT COUNT(*) FROM tb_Holiday WHERE HDate BETWEEN @dt_begin AND @dt_end)) RETURN(-(DATEDIFF(Day,@dt_end,@dt_begin) +1-( SELECT COUNT(*) FROM tb_Holiday WHERE HDate BETWEEN @dt_end AND @dt_begin))) END GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDayADD]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDayADD] GO --在指定日期上增加工作天数 CREATE FUNCTION f_WorkDayADD( @date datetime, --基础日期 @workday int --要增加的工作日数 )RETURNS datetime AS BEGIN IF @workday>0 WHILE @workday>0 SELECT @date=@date+@workday,@workday=count(*) FROM tb_Holiday WHERE HDate BETWEEN @date AND @date+@workday ELSE WHILE @workday<0 SELECT @date=@date+@workday,@workday=-count(*) FROM tb_Holiday WHERE HDate BETWEEN @date AND @date+@workday RETURN(@date) END
计算工作时间的函数.sql
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->if exists (select * from dbo.sysobjects where id = object_id(N'[tb_worktime]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [tb_worktime] GO --定义工作时间表 CREATE TABLE tb_worktime( ID int identity(1,1) PRIMARY KEY, --序号 time_start smalldatetime, --工作的开始时间 time_end smalldatetime, --工作的结束时间 worktime AS DATEDIFF(Minute,time_start,time_end) --工作时数(分钟) ) GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkTime]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkTime] GO --计算两个日期之间的工作时间 CREATE FUNCTION f_WorkTime( @date_begin datetime, --计算的开始时间 @date_end datetime --计算的结束时间 )RETURNS int AS BEGIN DECLARE @worktime int IF DATEDIFF(Day,@date_begin,@date_end)=0 SELECT @worktime=SUM(DATEDIFF(Minute, CASE WHEN CONVERT(VARCHAR,@date_begin,108)>time_start THEN CONVERT(VARCHAR,@date_begin,108) ELSE time_start END, CASE WHEN CONVERT(VARCHAR,@date_end,108)<time_end THEN CONVERT(VARCHAR,@date_end,108) ELSE time_end END)) FROM tb_worktime WHERE time_end>CONVERT(VARCHAR,@date_begin,108) AND time_start<CONVERT(VARCHAR,@date_end,108) ELSE SET @worktime =(SELECT SUM(CASE WHEN CONVERT(VARCHAR,@date_begin,108)>time_start THEN DATEDIFF(Minute,CONVERT(VARCHAR,@date_begin,108),time_end) ELSE worktime END) FROM tb_worktime WHERE time_end>CONVERT(VARCHAR,@date_begin,108)) +(SELECT SUM(CASE WHEN CONVERT(VARCHAR,@date_end,108)<time_end THEN DATEDIFF(Minute,time_start,CONVERT(VARCHAR,@date_end,108)) ELSE worktime END) FROM tb_worktime WHERE time_start<CONVERT(VARCHAR,@date_end,108)) +CASE WHEN DATEDIFF(Day,@date_begin,@date_end)>1 THEN (DATEDIFF(Day,@date_begin,@date_end)-1) *(SELECT SUM(worktime) FROM tb_worktime) ELSE 0 END RETURN(@worktime) END
发表评论
-
SQL语句大全 (转)
2011-05-16 13:42 1202原文地址:http://topic.csdn.net/u/20 ... -
(转)SQL 查询效率
2011-04-25 09:36 956很多人不知道SQL语句 ... -
数据库索引 类型 (转载)
2010-10-13 09:02 953http://www.zoomhoo.com/viewthre ... -
索引的优点和缺点,设计数据库的人员必看--转载
2010-10-13 09:00 963一、为什么要创建索引 ... -
破解 sql prompt 4 的方法
2010-03-31 10:58 45041.首先安装sql prompt 的原文件 ... -
Managing Hierarchical Data in MySQL(转)
2010-03-11 10:17 944转:http://dev.mysql.com/tech-r ... -
java web和servlet结合使用为数据库备份
2009-09-21 09:41 1108使用Runtime类的方法备份数据库和web下载结合起来 ... -
存储过程的使用
2009-09-16 08:28 630=================分页========= ... -
oracle常用函数3
2009-09-16 08:26 790105。STDDEV_POP 功能描 ... -
oracle常用函数
2009-09-16 08:20 6821. ASCII 返回与指定的字符对应的十进制数; ... -
sql强人使用数据库计算身份证算法
2009-07-14 09:43 1084一、 --SQL SERVER 15位身 ... -
sql的大全代码(7)
2009-04-17 12:14 850各种字符串合并处理示例.sql SQL code & ... -
sql的大全代码(6)
2009-04-17 12:13 728统计--交叉表+日期+优先.sql SQL code ... -
sql的大全代码(5)
2009-04-17 12:12 794复杂年月处理.sql SQL code <!- ... -
sql的大全代码(3)
2009-04-17 12:10 787特殊日期加减函数.sql SQL code < ... -
sql的大全代码(2)
2009-04-17 12:09 799CONVERT在日期转换中的使用示例.sql: SQL c ... -
sql的大全代码(1)
2009-04-17 12:08 1049设置内存选项: SQL code <!-- ... -
SQL命令大全-中英文对照
2009-03-24 15:03 2031--语 句 功 能 --数据操作 SELECT --从数据库表 ...
相关推荐
SQL Server错误代码大全
这是经过整理和测试的,最新ASP通用防SQL注入代码。 很简洁也很好用.和大家分享.
1、本地执行代码生成工具,可生成controller、service、...3、可按照资源中提供的建表sql导入到数据库,然后双加start.bat,即可在上方配置的outdir目录中找到生成的代码 4、复制代码到项目目录修修改改即可使用
SQL防注入代码SQL防注入代码SQL防注入代码SQL防注入代码SQL防注入代码SQL防注入代码
比较全面的SQL大全,在该文档中对SQL语句做了详细的讲述
SQL代码 sql练习,很多sql相关的练习,可以参考学习下,对pl/sql有帮助
SQL进阶教程(MICK (作者) 吴炎昌 (译者)) ,随书sql代码.本书是《SQL基础教程》作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。全书可分为两部分,第一部分介绍了SQL语言不同寻常的使用技巧,...
pl/sql例题代码pl/sql例题代码pl/sql例题代码
完美的SQL语句大全供我们参考使用,sql的专业分享
sql 代码生成器,常用生成,语法,帮助!
这里面整理了很多经常用到的SQL查询代码案例。能够有效的帮助你在学习数据库部分的SQL查询这块的需求。
精心编写的”SQL Server 2005代码大全“,仅将此分享给所有的数据库开发爱好者!
精心收集了很多常用的经典的SQL功能代码。绝对的是经典~~~~
收集汇总了设计者在SQL 编程中所有出现的错误代码提示大全 希望对大家有所帮助
好用的SQL Server代码格式化插件,有代码提示等功能
SQL数据库代码集合
程序员SQL语句大全大全(经典珍藏版)
适合新手入门,一切都是熟能生巧,练熟这些代码,可以基本掌握SQL sever
Sqlserver代码提示工具,提示表结构信息,快速书写标准的SQL
ASP防SQL注入代码,集合了最新的代码。