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<@begindate1) or (@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
相关资源
-
下载
2023-04-02
-
下载
2023-03-03
-
下载
2023-02-14