Jag har en tabell med bl.a dessa tre kolumner
id in ut
1 in 2009-03-05 ut 2009-07-13
2 in 2009-04-17 ut 0000-00-00
3 in 2009-07-20 ut 2009-10-01
4 in 2009-09-30 ut 0000-00-00
där 0000-00-00 betyder finns kvar
Om jag nu vill veta vilka som var inne 2009-09-01, hur gör jag då?
Jag lyckas bara få ut antingen id2 eller id3.
Få ut data för ett visst datum
4 svar · 477 visningar · startad av tanten
Hmm, man kanske skulle kunna göra såhär - beroende på vilken DB du kör, detta blir för mySQL
select id from tabellen where in < '2009-09-01' and replace(ut, '0000-00-00', curdate()) > '2009-09-01'
Har inte testat själv, det beror nog lite på vad du har för data-typ på in och ut, men det borde gå att lösa så här om du lagrar det som string. Kanske måste du casta om curdate() till string också :)
Det fungerade perfekt och ja, jag använder MySQL och data-typ date.
Tack så jättemycket :)
Toppen :)
Du kanske ska fundera på om du vill ha strikt olikhet i < eller >, eller om du kan tänka dig <= och >=, säg att en sak kom in idag och du råkar vilja kolla det samma dag, då bör du få okej från både in och ut, så att säga, vilket kräver <= och >=
Ja, <= och >= hade jag med från början i mina försök, men vad som aldrig slog mig var att jag skulle kunna använda replace för att ändra 0-datumet till "idag"...
Blev en massa konstiga försök med and och or... som förstås bara blev helfel.
Din kod blev dagens stora aha-upplevelse... Tack igen!