Du kan använda date_format() för att enbart jämföra år och månad;
select
*
from
tbl
where
date_format(datum_fält, '%Y-%m')='2010-01'
2 svar · 428 visningar · startad av SoulGod
Jag har en databas till en kalender som ser ut som följer:
id (int11) , datum (date), rubrik, forare, info,lank, skribent
De fält som inte har en () är varchar allihop.
Jag hämtar ut informationen såhär:
$datumet = date("Y-m-d");
$query = " SELECT * FROM kalender WHERE datum >= '$datumet' "
$result = mysql_query($query) or die('Error, query failed');
while($row = mysql_fetch_array($result)) { ......
Det jag skulle vilja göra, är att få ut informationen ungefär såhär:
Januari
-------
Datum = 2010-01-**
Februari
--------
Datum = 2010-02-**
Men självklart ska den dölja "föregående" datum som passerat.
Min fråga är huvudsakligen : Hur gör jag?
Uppdelat är frågan, kan jag använda min datum sträng ( som sparas genom date("Y-m-d") ( ex 2010-01-01 ) ...
Kan jag korta av strängen när jag söker, eller ska jag göra en kolumn som bara sparar månad?
Du kan använda date_format() för att enbart jämföra år och månad;
select
*
from
tbl
where
date_format(datum_fält, '%Y-%m')='2010-01'
Höll precis på att köra edit på mitt inlägg när du skrev :P
Jag löste det såhär:
$ar = substr($row['datum'], 0, 4);
$man = substr($row['datum'], 5, 2);
Men frågan är hur jag ska kunna göra olika listor för olika månader,
och ändå visa dom på rad, utan att behöva ha olika SQL satser.
Kanske blir tvungen att ha olika SQL satser?