SQL Select inregistrari intre luni si ani

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
sterica
Mesaje: 272

SQL Select inregistrari intre luni si ani

Am patru casute doua pentru start date (luna; an) si doua pentru end date (luna; an).
Am incercat ceva de genul dar nu functioneaza corect:

Cod: Selectaţi tot

WHERE luna BETWEEN $sch_luna_inceput AND $sch_luna_sfarsit
  AND anul BETWEEN $sch_luna_sfarsit AND $sch_an_sfarsit
Cum am facut, daca aleg lunile 01 - 02 si anii 2014 - 2015 adica:

Cod: Selectaţi tot

WHERE luna BETWEEN 1 AND 2
   AND anul BETWEEN 2014 AND 2015
Imi returneaza numai lunile 1 si 2 si anii respectivi, vreau sa imi returneze perioada dintre 01.2014 si 02.2015

Multumesc!

MarPlo
De unde sa stie programul ca vrei luna 1 din primul sau /si al doilea an.
Ca sa selectezi randuri intre 2 date de timp ar trebui sa lucrezi cu coloana de tip DATETIME in tabelul mysql.
Pentru ceea ce vrei e nevoie de o singura coloana DATE; apoi aplici:

Cod: Selectaţi tot

WHERE col_date BETWEEN '2014-01-1' AND '2015-02-1'

MarPlo
Daca totusi vrei sa pastrezi forma cu 4 coloane (start si end: an, luna), poti incerca asa:

Cod: Selectaţi tot

WHERE STR_TO_DATE(CONCAT(anul, '-', luna, '-01'), '%Y-%M-%d') BETWEEN '$sch_an_inceput-$sch_luna_inceput-01' AND '$sch_an_sfarsit-$sch_luna_sfarsit-01'
- Se foloseste BETWEEN cu unirea datelor din coloane intr-un format de tip DATE.

sterica
Multumesc foarte mult de ajutor

Subiecte similare