När man använder:
SELECT * FROM tbl WHERE date BETWEEN 2002-01-01 AND 2003-01-01
Kommer den att returnera alla datum mellan 2002-01-01 och 2003-01-01. Alltså inte de aktuella datumen. Hur inkluderar man dem på bästa sätt?
8 svar · 277 visningar · startad av Gaski
När man använder:
SELECT * FROM tbl WHERE date BETWEEN 2002-01-01 AND 2003-01-01
Kommer den att returnera alla datum mellan 2002-01-01 och 2003-01-01. Alltså inte de aktuella datumen. Hur inkluderar man dem på bästa sätt?
SELECT * FROM tbl WHERE date BETWEEN '2002-01-01' AND '2003-01-01'
between är inklusive ändpunkterna.
Hmmm. Men om man kör WHERE now() BETWEEN 2001-01-01 AND 2002-01-01 kommer den inte att visa det den första January -02
Har två datum för varje post, gilitghetsdatum. Från och Till. Jag vill hämta alla poster där dagensdatum infaller mellan dessa två datum eller på ett av dem.
select * from tbl where current_date between fran and till
Men det fungerar inte eftersom den inte tar med posten om current_date är samma som fran eller till. eller är det bara med now() som det blir så?
Om du har använt now så får du både datum och tid. current_date är enbart datum. Om du har lagrat fran och till med timmar så får du nog skriva frågan som
select * from tbl where to_days(current_date) between to_days(fran) and to_days(till)
eller
Nej i databasen är det endast datumet och ingen tid. Det är ett date fält som jag lägger till ett värde med now(), fungerar utmärkt...
Men det är between som inte fungerar, översatt betyder det mellan och inte från och tillochmed som jag vill ha det. Du verkar inte ha greppat problemet. Det är Between, inte now() eller current_date!