webForumDet fria alternativet

hämta poster med aktuell vecka

ASP

8 svar · 341 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

nu ska ni få nått att bita i, får se bara om jag kan förklara mitt problem.
jag har en sqldatabas med två datumkolumner: startdate och stopdate med värden typ: 2002-02-09 ---- 2002-02-27
sen vill jag hämta alla poster där aktuell vecka finns emellan dessa datum, hajjar ni?
ex: denna vecka är nu nr.9 med början på 2002-02-25 och slutar på 2002-03-03 och då vill jag alltså hämta de poster där någon av dessa 7 dagar återfinns emellan startdate och stopdate!
(jag tror att lyckades förklara som jag vill ha det)

ingen lätt uppgift men har nån ork att svara så lovar att skänka en riktigt stor slant till webforum-servern!!! ;)

Medlem sedan juni 200032 967 inlägg
#2

Access?

Prova detta:

strSQL = "SELECT * FROM tabellen WHERE DatePart('ww', datumfältet) = DatePart ('ww', now())"

Det kan vara så att du får lägga till ytterligare parametrar till funktionen DatePart, jag är osäker på hur den fungerar i JET SQL.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#3
fday = date - weekday(date,vbMonday) + 1
lday = fday + 6

query = "select * from t where #" & fday & "# between startdate and stopdate or #" & _
lday & "# between startdate and stopdate"
Medlem sedan juni 200032 967 inlägg
#4

Följdfråga till LarsG; fungerar inte DatePart() på det sättet i JET SQL?

Jag använder inte Access själv. Visserligen gör inte du det heller, men du brukar ha stor koll på de olika dialekterna.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#5

Jodå, din användning av datepart ser ut som den borde.

Medlem sedan juni 20003 076 inlägg
#6

Tack för en knippe intressanta svar, har inte hunnit testa men LarsG´s svar ser ut att vara det jag är ute efter, ska genast dyka ner i koden, vi hörs!

(ska genast sätta in pengar på kontot!) :)

Medlem sedan juni 20003 076 inlägg
#7

Det funkar...nästan!
Jag får bara inte fram några poster, inga error dock.
Min kod är denna:

fday = date - weekday(date,vbMonday) + 1
lday = fday + 6

Sqlac = "SELECT Ac.Id AS Acid, Ac.Description AS Acdescription, "&_
"Ac.Userid AS Acuserid, Ac.Startdate AS Acstartdate, "&_
"Ac.Stopdate AS Acstopdate, Ar.Id AS Arid, "&_
"Ar.Areaname AS Arareaname, Ar.Areanumber AS Arareanumber, "&_
"Us.Username AS Ususername, Us.Id AS Usid "&_
"FROM Activitytbl Ac INNER JOIN Usertbl Us ON Ac.Userid = Us.Id "&_
"INNER JOIN Areatbl Ar ON Ac.Areaid = Ar.Id "&_
"WHERE '" & fday & "' between Ac.Startdate AND Ac.Stopdate OR "&_
"'" & lday & "' between Ac.Startdate AND Ac.Stopdate ;"

Set Rsac = Connac.Execute(Sqlac)

Jag använder sql-server och fälten är i datumformat, vad kan det vara?

Medlem sedan dec. 200012 464 inlägg
#8

Kan du testa ut frågan bit för bit?
Du kan först testa att bara göra select från tabellen Activity med villkoren på datum och sedan lägga till att du joinar mot en tabell usw.

Medlem sedan juni 20003 076 inlägg
#9

AAAhhhhhh! Visst är det väl underbart när det funkar som man vill ha det (även fast man har fått hjälp på traven).
Det var en liten bagatell-miss från min sida bara, koden funkade naturligtvis från början.

(Jag börjar förstå att vissa bränner ut sig som programerare, det är verkligen svårt att slita sig, men men, man lever bara en gång och då kan man väl lika gärna programera ihjäl sig med ASP!)
Tack ännu en gång LarsG.(å @nders)

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