Click here to Skip to main content
15,891,647 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have to insert value 1 or 0 to a column it is based on the recurrence value between 2 dates

I have 2 dates start date and end date and I provide recurrence value(if it is 1 it should consider everyday, if it is 2 it should consider alternate dates like wise). how can I know is today is the date to consider

let me tell clearly that my start date is 20-06-2018 and end date is on some july.
today will I get 1 or 0, if I give recurrence interval 3

What I have tried:

I have tried below

select PARSENAME((DATEDIFF(ww, '2018-06-25',CONVERT(DATE,GETDATE()))/3),1)

select PARSENAME((DATEDIFF(day, '2018-06-20',CONVERT(DATE,GETDATE()))/2),1)
Posted
Updated 28-Jun-18 6:04am

1 solution

If I've understood what you're asking for, something like this should work:
SQL
DECLARE @Today date = GetDate();
DECLARE @StartDate date = '20180620';
DECLARE @EndDate date = '20180701';
DECLARE @RecurEveryDays int = 3;

SELECT CASE
    WHEN @Today < @StartDate THEN CAST(0 As bit)
    WHEN @Today > @EndDate THEN CAST(0 As bit)
    WHEN (DateDiff(day, @StartDate, @Today) % @RecurEveryDays) != 0 THEN CAST(0 As bit)
    ELSE CAST(1 As bit)
END;
% (Modulus) (Transact-SQL) | Microsoft Docs[^]
 
Share this answer
 
Comments
CHAITANYA BASAVA KUMAR 20-Aug-18 1:15am    
Hi Richard,

Thank You, It is working as expected...

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900