TravoniMedlem sedan okt. 20041 556 inlägg Denna använder jag för att kolla om någon posts datum ligger i intervallet ifrån dagens datum.
SELECT id, startdate, stopdate, note FROM my_calendar WHERE '2010-04-01' BETWEEN startdate AND stopdate;
Hur gör jag om jag vill kolla hela månaden?
Alltså om postens datum befinner sig i april månad 2010.
Prova detta:
SELECT id, startdate, stopdate, note FROM my_calendar WHERE
(
'2010-04-01' > LAST_DAY(DATE_SUB(startdate, INTERVAL 1 MONTH))
AND
'2010-04-01' <= LAST_DAY(stopdate)
)
LAST_DAY ger månadens sista dag. Denna fråga kollar om det angivna datumet ligger inom månaderna som startdate och stopdate definierar.
Exempel:
startdate = '2010-04-02'
stopdate = '2010-05-30'
2010-04-01 matchar eftersom det ligger inom månad 4 och 5. '2010-05-31' matchar också.
SPiNMedlem sedan mars 20007 896 inlägg Vilken DBMS? MySQL tillhandahåller en month()-funktion;
select
id,
startdate,
stopdate,
note
from
my_calendar
where
month('2010-04-01') = month(startdate)
SPiN: Två uppenbara problem med din kod:
- Den tar inte hänsyn till året.
- Den tar bara hänsyn till startdatumet.
SPiNMedlem sedan mars 20007 896 inlägg
nitro2k01 skrev:
SPiN: Två uppenbara problem med din kod:
- Den tar inte hänsyn till året.
- Den tar bara hänsyn till startdatumet.
Japp, hade lite bråttom just då ;)