经典存储过程IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getbetweenDays]'AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
经典存储过程   
DROP FUNCTION [dbo].[getbetweenDays]
经典存储过程
go
经典存储过程
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getDay]'AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
经典存储过程   
DROP FUNCTION [dbo].[getDay]
经典存储过程
go
经典存储过程
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getDays]'AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
经典存储过程   
DROP FUNCTION [dbo].[getDays]
经典存储过程
go
经典存储过程
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[hjtj]'AND type in (N'P', N'PC'))
经典存储过程   
DROP PROCEDURE [dbo].[hjtj]
经典存储过程
go
经典存储过程
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[hjtjold]'AND type in (N'P', N'PC'))
经典存储过程   
DROP PROCEDURE [dbo].[hjtjold]
经典存储过程
go
经典存储过程
SET ANSI_NULLS ON
经典存储过程
GO
经典存储过程
SET QUOTED_IDENTIFIER ON
经典存储过程
GO
经典存储过程
-- =============================================
经典存储过程--
 Author:        郑平
经典存储过程--
 Create date: 2008年7月9日9:30:49
经典存储过程--
 Description:    比较两个时间段间交叉的天数
经典存储过程--
 判断(begin1,end1)时间段在(@begin2,@end2)中有几天(包含当天)
经典存储过程--
 调用[dbo].[getDays]('2008-06-06','2008-07-06','2008-07-01','2008-07-09')
经典存储过程--
 意思是:2008-06-06到2008-07-06中在'2008-07-01'到'2008-07-09'有几天
经典存储过程--
 =============================================
经典存储过程
create function [dbo].[getbetweenDays]
经典存储过程(
@begin1 varchar(12),@end1 varchar(12),@begin2 varchar(12),@end2 varchar(12),@begin3 varchar(12),@end3 varchar(12))
经典存储过程
returns int 
经典存储过程
as  
经典存储过程
begin
经典存储过程 
declare @num as int;
经典存储过程 
declare @beginDate as datetime;
经典存储过程 
declare @endDate as datetime;
经典存储过程 
declare @beginDate1 as datetime;
经典存储过程 
declare @endDate1 as datetime;
经典存储过程 
declare @beginDate2 as datetime;
经典存储过程 
declare @endDate2 as datetime;
经典存储过程 
set @beginDate=cast(@begin1 as datetime);
经典存储过程 
set @endDate=cast(@end1 as datetime);
经典存储过程 
set @beginDate1=cast(@begin2 as datetime);
经典存储过程 
set @endDate1=cast(@end2 as datetime);
经典存储过程 
set @beginDate2=cast(@begin3 as datetime);
经典存储过程 
set @endDate2=cast(@end3 as datetime);
经典存储过程 
set @num=0;
经典存储过程 
--两个时间交集
经典存储过程
   if(@begindate2<=@begindate1 and @enddate2<=@endDate1)
经典存储过程   
set @num=datediff(day,@begindate,@enddate)+1;
经典存储过程 
return @num;
经典存储过程
end
经典存储过程
go
经典存储过程
-- =============================================
经典存储过程--
 Author:        郑平
经典存储过程--
 Create date: 2008年7月9日9:30:49
经典存储过程--
 Description:    比较两个字符串间的天数
经典存储过程--
 判断(@begin时间在(@end)中有几天(包含当天)
经典存储过程--
 调用[dbo].[getDays]('2008-06-06','2008-07-06')
经典存储过程--
 意思是:2008-06-06到2008-07-06有几天
经典存储过程--
 =============================================
经典存储过程
CREATE function [dbo].[getDay](
经典存储过程  
@begin varchar(12),
经典存储过程  
@end varchar(12)
经典存储过程)
returns int
经典存储过程
begin
经典存储过程 
declare @num as int
经典存储过程 
set @num=0;
经典存储过程 
declare @beginDate as datetime;
经典存储过程 
declare @endDate as datetime;
经典存储过程 
if(@begin is null and @end is null)
经典存储过程  
return 100000000;
经典存储过程 
if(@begin>@end)
经典存储过程  
return 100000000;
经典存储过程 
set @beginDate=cast(@begin as datetime)
经典存储过程 
set @endDate=cast(@end as datetime)
经典存储过程 
set @num=datediff(day,@begindate,@enddate)+1;
经典存储过程 
return @num;
经典存储过程
end
经典存储过程
经典存储过程
GO
经典存储过程
-- =============================================
经典存储过程--
 Author:        郑平
经典存储过程--
 Create date: 2008年7月9日9:30:49
经典存储过程--
 Description:    比较两个时间段间交叉的天数
经典存储过程--
 判断(begin1,end1)时间段在(@begin2,@end2)中有几天(包含当天)
经典存储过程--
 调用[dbo].[getDays]('2008-06-06','2008-07-06','2008-07-01','2008-07-09')
经典存储过程--
 意思是:2008-06-06到2008-07-06中在'2008-07-01'到'2008-07-09'有几天
经典存储过程--
 =============================================
经典存储过程
CREATE function [dbo].[getDays]
经典存储过程(
@begin1 varchar(12),@end1 varchar(12),@begin2 varchar(12),@end2 varchar(12))
经典存储过程
returns int
经典存储过程
as  
经典存储过程
begin
经典存储过程 
declare @num as int;
经典存储过程 
declare @beginDate as datetime;
经典存储过程 
declare @endDate as datetime;
经典存储过程 
declare @beginDate1 as datetime;
经典存储过程 
declare @endDate1 as datetime;
经典存储过程 
set @beginDate=cast(@begin1 as datetime);
经典存储过程 
set @endDate=cast(@end1 as datetime);
经典存储过程 
set @beginDate1=cast(@begin2 as datetime);
经典存储过程 
set @endDate1=cast(@end2 as datetime);
经典存储过程 
set @num=0;
经典存储过程 
--如果两个时间差没有交集
经典存储过程
   if((@begindate<@begindate1 and @enddate<@begindate1or (@begindate>@enddate1))
经典存储过程    
begin
经典存储过程     
return @num;
经典存储过程    
end;
经典存储过程 
--结束时间大于开始时间
经典存储过程
 if(@enddate>=@begindate1 and @begindate<=@begindate1)
经典存储过程   
set @num=datediff(day,@begindate1,@enddate)+1;
经典存储过程 
--时间在另个时间的内e
经典存储过程
 if(@beginDate>=@begindate1 and @enddate<=@enddate1)
经典存储过程   
set @num=datediff(day,@begindate,@enddate)+1;
经典存储过程 
--开始时间大于开始时间,结束时间大于结束时间
经典存储过程
 if(@begindate>@begindate1 and @enddate>@enddate1 and @begindate<=@enddate1)
经典存储过程   
set @num=datediff(day,@begindate,@enddate1)+1;
经典存储过程  
if(@begindate<=@begindate1 and @enddate>=@enddate1 and @begindate1<= @enddate)
经典存储过程   
set @num=datediff(day,@begindate1,@enddate1)+1;
经典存储过程 
return @num;
经典存储过程
end
经典存储过程
Go
经典存储过程
GO
经典存储过程
CREATE proc [dbo].[hjtj](
经典存储过程  
@orgid varchar(32),
经典存储过程  
@begindate varchar(12),
经典存储过程  
@enddate varchar(12)
经典存储过程)
经典存储过程
as
经典存储过程 
set nocount on;
经典存储过程 
--办事处临时表
经典存储过程
 create table #OrgOffice(
经典存储过程   id 
char(32),
经典存储过程 )
经典存储过程 
--主计划临时表
经典存储过程
 create table #mainplan(
经典存储过程   id 
char(32)
经典存储过程 )
经典存储过程 
--类型临时表
经典存储过程
 create table #type(
经典存储过程   id 
char(32)
经典存储过程 );
经典存储过程 
create  table #tb(
经典存储过程  typename 
varchar(30),
经典存储过程  totalfee numeric(
18,3),
经典存储过程  months 
varchar(32),
经典存储过程  totalamount numeric(
20,3)
经典存储过程 )
经典存储过程   
--取出该类型的全部子类型(包括自己)

相关文章:

  • 2022-01-01
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-03-04
  • 2022-02-08
  • 2021-10-22
  • 2021-07-07
  • 2021-12-05
  • 2022-01-07
相关资源
相似解决方案