SELECT * FROM databasen WHERE date > (idag - 4 månader)
Hur (idag - 4 månader) ser ut beror på ditt datumformat.
7 svar · 597 visningar · startad av Tulork
Har problem med att få till en vettig mysql select där datan som hämtas inte är äldre än 4 månader.
SELECT * FROM databasen WHERE date > (idag - 4 månader)
Hur (idag - 4 månader) ser ut beror på ditt datumformat.
sparas som unix timestamp
Möjligtvis;
select fld
from tbl
where [url=http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_period-diff]period_diff[/url](
date_format(now(), '%Y%m'), [url=http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format]date_format[/url](dateFld, '%Y%m')
) = 4
Hämtar månadsvis, oberoende av datum i månaden. Jag kanske missuppfattade frågan? Hämtar alla poster från april även om det är 29 augusti...
Om en korrekt select görs nu, ska datan som hämtas dateras från jan-april, ingenting innan det får komma med i selecten.
Det blir lättare att läsa om man räknar ut 4 månader tillbaka först.
i php och det förutsätter att det är 30 dagar i månaden. Vill du vara exakt så får du använda någon datumfunktion i det språk du använder.
$datum = time() - (60 * 60 * 24 * 30 * 4);
$sql = 'SELECT * FROM databasen WHERE date > ' . $datum;
Edit: Såg ditt svar efter att jag postat. Jag missförstod nog frågan.
Tulork, frågan är ju om ingenting innan 6 januari får hämtas i och med att det är 6 april idag. Eller ska hela januari hämtas? I så fall fungerar koden jag visade i förra inlägget.
Tackar, fungerar utmärkt.