sql - Date a year from now and check what is the next Term from that Date -
i have table contains term , termstartdate , termenddate. have consider todays date , check in term falls under(current term) , consider date 360 days termenddate of current term(calculated_date).
once date have check term falls after date.basically termstartdate falls after calculated_date.
note:
basically, need records of students fall between current term , year before current term. example, if term fall 2013 , need records spring 2013. should not consider fall 2012.
edit:
sample table
term termstartdate termenddate fall 2012 2012/08/27 2012/12/15 spring 2013 2013/01/14 2013/04/26 sumr 2013 2013/05/06 2013/06/29 sumr ii 2013 2013/07/01 2013/08/24 fall 2013 2013/08/26 2013/12/14 spring 2014 2014/01/13 2014/04/26 step 1: getdate()
step 2: check termenddate falling after getdate() (gives current term)
step 3: calculate date 360 days before current term end date
step 4: first term falls after date calcuted in step 3
i think on complicating problem, requested, try this:
declare @terms table(term varchar(50),termstartdate date, termenddate date) insert @terms values('fall 2012','8/27/2012','12/15/2012') insert @terms values('spring 2013','1/14/2013','4/26/2013') insert @terms values('sumr 2013','5/6/2013','6/29/2013') insert @terms values('sumr ii 2013','7/1/2013','8/24/2013') insert @terms values('fall 2013','8/26/2013','12/14/2013') insert @terms values('spring 2014','1/13/2014','4/26/2014') declare @today date =getdate() select @today = termenddate @terms termstartdate<=@today , termenddate>=@today select term @terms termstartdate>=dateadd(d,-360,@today) , termstartdate<=getdate() this list terms included in period 360 days prior end of current term.
update
select min(termstartdate)startdate ( select termstartdate @terms group termstartdate having termstartdate>=dateadd(d,-360,@today) , termstartdate<=getdate() )z will startdate earliest term.
Comments
Post a Comment