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