UFN_JOBSCHEDULE_DATEVALID
Returns whether a date fits a start and end date time pair for a job.
Return
| Return Type |
|---|
| bit |
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @dt | datetime | IN | |
| @OCCURRENCETYPE | tinyint | IN | |
| @STARTDATETIME | datetime | IN | |
| @STARTMONTHDAY | UDT_MONTHDAY | IN | |
| @ENDDATETIME | datetime | IN | |
| @ENDMONTHDAY | UDT_MONTHDAY | IN |
Definition
Copy
create function dbo.UFN_JOBSCHEDULE_DATEVALID(@dt datetime, @OCCURRENCETYPE tinyint,
@STARTDATETIME datetime, @STARTMONTHDAY dbo.UDT_MONTHDAY,
@ENDDATETIME datetime, @ENDMONTHDAY dbo.UDT_MONTHDAY) returns bit with execute as caller
as
begin
declare @retval as bit;
declare @MONTH as int;
declare @DAY as int;
if @dt is null
return 0;
if @OCCURRENCETYPE = 2 --ongoing
return 1;
if @OCCURRENCETYPE = 0 --onetime
if @dt between @STARTDATETIME and @ENDDATETIME
return 1;
if @OCCURRENCETYPE = 1 --recurring
set @MONTH = month(@dt);
set @DAY = day(@dt);
if @STARTMONTHDAY <= @ENDMONTHDAY
begin
if (@MONTH > left(@STARTMONTHDAY,2)
or (@MONTH = left(@STARTMONTHDAY,2) and @DAY>= right(@STARTMONTHDAY,2)))
and
(@MONTH < left(@ENDMONTHDAY,2)
or (@MONTH = left(@ENDMONTHDAY,2) and @DAY<= right(@ENDMONTHDAY,2)))
return 1;
end
else
begin
if (@MONTH > left(@STARTMONTHDAY,2)
or (@MONTH = left(@STARTMONTHDAY,2) and @DAY>= right(@STARTMONTHDAY,2)))
or (@MONTH < left(@ENDMONTHDAY,2)
or (@MONTH = left(@ENDMONTHDAY,2) and @DAY<= right(@ENDMONTHDAY,2)))
return 1;
end
return 0;
end