webForumDet fria alternativet

Vilken aktuell skolklass?

2 svar · 537 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

Jag har en kolumn i min mySql-databas som heter start_grade1 där jag lagrar startåret för första klass.
Alltså började man första klass 2009 så skall resultatet nu bli "Klass 2".
Men man skall även kunna visa köföräldrar så start_grade1 skall även kunna vara ex. 2013 vilket då skall bli "Klass -3" (alltså börjar om tre år)
Detta borde väl inte vara så svårt, men kör jag denna sql:

SELECT (year(CURRENT_DATE())-start_grade1)+1 'Klass' FROM tbl;

Så blir resultatet "18446744073709551615" om startåret är 2012...

Hur tänker jag här...?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Vad är start_grade1 för typ? Är de lagrade värdena vettiga?

Jesper TMedlem sedan nov. 20017 144 inlägg
#3

Typen är "YEAR", testade också datediff, funkade inte. Men denna verkar funka.

floor(PERIOD_DIFF(year(current_date()),start_grade1)+1)

Är ditt startår i klass ett, 2010 så blir resultatet 1
Är ditt startår i klass ett, 2012 så blir resultatet -1
Detta stämmer ju så långt.

Men jag vill ju att detta skall vara "terminsbundet" och inte "årsbundet", för att man går ju fortfarande i klass ett efter årsskiftet...

135 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)