ska hämta poster som ligger mellan två datum.
försöker med between men det stämmer ej.
Select a.Activityid, a.Notes, a.Startdate, a.Enddate
From tblActivity a
Inner Join tblProject p On a.Projectid = p.Projectid
Where p.Projectid = @Projectid And @Current_date Between Startdate And Enddate
Order By a.Startdate Asc
ex. i databasen har jag en post:
start 2003-03-11 10:12:12, slut 2003-03-11 12:12:12
och skickar in 2003-03-11 men får inte fram posten.
flyttar jag starttiden 1 dag bakåt till den 10:de så funkar det, vad göra?
ViktorMedlem sedan aug. 20021 752 inlägg Re: datum1 between datum2 and datum3 (samma dag)
Anledningen till att ditt exempel inte fungerar är antagligen att tiden sätts till 00.00, altså är det innan start datumet.
/Viktor
hmm, så kan det va.
hur tusan skriver jag då, tiden i databasen är oviktig i detta fall, jag ska alltså hämta alla poster den dagen, oavsett tid.
ViktorMedlem sedan aug. 20021 752 inlägg Prova att sätta start till 2003-03-11 och slut till 2003-03-12
Då tror jag du får alla poster som postats 2003-03-11.
/Viktor
Viktor skrev:
Prova att sätta start till 2003-03-11 och slut till 2003-03-12
nope, jag listar aktiviteter som kan starta 12.00 och sluta 13:30
så jag kan inte ändra datumfälten i databasen.
men i problemet ovan vill jag alltså lista samtliga under vald dag.
jag har för mig att jag gjort nått liknande nån gång och lära jag använda datediff för att jämföra ett date-värde mot ett now-värde.
kanske lär jag göra nått liknande här? nått tips?
/använder ms sql-server2000
LarsGMedlem sedan dec. 200012 464 inlägg Where p.Projectid = @Projectid
And convert(varchar,@Current_date,103)
Between convert(varchar,Startdate,103)
And convert(varchar,Enddate,103)
problems igen.
färdig kod från ovan, dock ändrat 103 till 126:
Select a.Activityid, a.Categoryid, a.Heading, a.Notes, a.Place, a.Startdate, a.Enddate, c.Categoryname
From tblActivity a
Inner Join tblProject p On a.Projectid = p.Projectid
Left Join tblCategory c On a.Categoryid = c.Categoryid
Where p.Projectid = @Projectid
And convert(varchar,@Current_date,126)
Between convert(varchar,a.Startdate,126)
And convert(varchar,a.Enddate,126)
Order By a.Startdate Asc
i databasen har jag en post, start 2003-03-24, slut 2003-04-15
men skickar jag in 2003-03-24 så kommer inte posten upp.
skickar jag däremot in 2003-03-25 så syns den, varför?
har temporärt gjort så här, men det borde väl finnas ett "riktigt" sätt, eller?
And convert(varchar,@Current_date,126)
Between left(convert(varchar,Startdate,126),10)
And left(convert(varchar,Enddate,126),10)
ovan funkade inte heller, så klart!
nu börjar jag bli yr i huvudet så kan nån få rätsida på detta.
just nu kör jag med denna, tror att den funkar, men ni ser ju själv, finkod!!!
And DatePart(yyyy, @Current_date) >= DatePart(yyyy, a.Startdate)
And DatePart(mm, @Current_date) >= DatePart(mm, a.Startdate)
And DatePart(dd, @Current_date) >= DatePart(dd, a.Startdate)
And DatePart(yyyy, @Current_date) <= DatePart(yyyy, a.Enddate)
And DatePart(mm, @Current_date) <= DatePart(mm, a.Enddate)
And DatePart(dd, @Current_date) <= DatePart(dd, a.Enddate)
Tänkte bara att ni skulle få en lägesrapport! :)
Nu är jag snart tillbaka där jag började.
Denna funkar just nu, frågan är ju bara hur länge!? ;)
And convert(varchar, @Current_date, 112)
Between convert(varchar, a.Startdate, 112)
And convert(varchar, a.Enddate, 112)