webForumDet fria alternativet

Hämta data från 4månader tillbaka

Databaser & SQL

7 svar · 597 visningar · startad av Tulork

Medlem sedan aug. 2004903 inlägg
Frågan#1

Har problem med att få till en vettig mysql select där datan som hämtas inte är äldre än 4 månader.

Medlem sedan mars 2007845 inlägg
#2

SELECT * FROM databasen WHERE date > (idag - 4 månader)

Hur (idag - 4 månader) ser ut beror på ditt datumformat.

Medlem sedan aug. 2004903 inlägg
#3

sparas som unix timestamp

Medlem sedan mars 20007 896 inlägg
#4

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...

Medlem sedan aug. 2004903 inlägg
#5

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.

Medlem sedan mars 2007845 inlägg
#6

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.

Medlem sedan mars 20007 896 inlägg
#7

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.

Medlem sedan aug. 2004903 inlägg
#8

Tackar, fungerar utmärkt.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)