01. juli 2001 - 13:46Der er
16 kommentarer og 1 løsning
sql + mere end 30 dage gammel
Jeg sidder med en asp-side, hvor jeg vil lave et udtræk fra en Accessdatabase. Udtrækket skal kun udtrække records, der er oprettet inden for de sidste 30 dage. Min sql sætning se således ud:
StrSql = \"SELECT * FROM tabel WHERE (dato > \" & date-30 & \");\"
Probelmet er bar, at jeg får alle records ud. Og de som er mere en 30 dage gamle.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
når jeg udskriver min sql-sætning til skrmæen får jeg ved date-30 eller #\" & date-30 & \"# samme dato, som er den korrekte dato. Altså datoen for 30 dage siden.
Du skal lave en where i stil med denne (kan altså ikke huske den præcise syntaks for datediff i Access):
select * from tabel where datediff(\"d\", Now) <= 30
datediff kan jo give dig forskellen på to datoer, f.eks. i dage, hvorfor du nemt kan sammenligne dette antal dage med 30. Now funktionen (som den vist også hedder i Access) returnerer ganske simpelt den aktuelle dato.
Meget mærkeligt. Jeg har fået det til at virke nu ved at dele Date() op i dag, måned og år og så sammen sat dem igen, således at der står 02/07/01. Min date() funktione skriver 02/07/2001. Det var altså pga. at der stod 2001 og ikke 01, men det burde Access jo selv tage højde for, det gør den f.eks. når man tilføjer nye records, men åbenbart ikke når man skal lave en SQL-sætning, hvor datoen skal indgå i en WHERE. Jeg siger tak til torbenkoch og netsrac, I får desværre ingen point da I ikke løste mit problem. Jeg går ud fra at det er ok med Jer.
Har nok lidt svært ved at forstå, at mit svar ikke kunne hjælpe dig, men skidt nu med det. Hvis du nu fortæller, hvordan du selv har gjort (vi vil se kode!), så er vi alle(?) nok glade!
Torbenkoch> Jeg vil med glæde vise dig koden. Det er mærkeligt at datediff ikke virker for jeg plejer ofte selv at benytte detediff med jeg kunne ikke få det til at virke. Mon det har noget at gøre med den server jeg ligger på? Det er svært at sige.
Jeg løste ihvertfald problemet på følgende måde:
dato = date dag = left(date,2) md = mid(date,4,2) aar = right(date,2) \'Bemærk året fylder kun 2 tegn og ikke 4!
StrSql = \"SELECT * FROM tabel WHERE dato+30 > #\" & md & \"/\" & dag & \"/\" & aar& \"#;\"
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.