24. august 2004 - 10:58Der er
7 kommentarer og 1 løsning
Hente poster fra tabel where dato between dato1 og dato2
Kaldet køres i en funktion som får en DateTime variabel med, hentet fra en dropdown-liste med selectedItem.Value
Hvad er galt her?
"select * from deltagning where dato between " + dato1 + " And " + dato2 + ""
Der ligger noget på de valgte datoer, men de bliver ikke vist. I databasen er datoen gemt på formatet dd-mm-yyyy, og jeg har checket at det er den værdi der bliver hentet fra dropdownlisten.
Jeg har forsøgt med enkel apostrof rundt variablerne, uden resultat. Skal det være apostrof rundt DateTime-variabler?
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
hvad er dato1 og dato2? Hvis det er datetime i asp.net : Jeg plejer at formattere det således, (af en eller anden grund virker det bedst) string dato_1 = dato1.Month + "-" + dato1.Day + "-" + dato1.Year; Så datoen bliver "08-24-2004" evt. tilføje 00:00:00.
yyyymmdd formatet plejer at virke for mig. Er datoen gemt i et tekstfelt i databasen, siden du skriver den er gemt på formatet "dd-mm-yyyy". For hvis den er, kan du glemme alt om at finde de rigtige resultater.
Hvad mener du med at det er gemt som dd-mm-yyyy i databasen? Hvis det er gemt som char/varchar i databasen får du problemer med at lave din between søgning.
Hvis det er gemt som date/datetime, så burde det kunne lade sig gøre, men du skal være opmærksom på hvordan din MS SQL er sat op til at fortolke datoer (som anhansen er inde på).
Hvis du har mulighed for det, er det bedre at benytte prepared statements, så der ikke skal oversættes til/fra date/varchar, men det afhænger af hvilket sprog du programmerer i.
dato1 er værdien jeg får fra dropdownlisten, altså en dato som 06-08-2004. Dato2 erklærer jeg som en datetime, og settes = dato1.AddDays(1), så jeg kan køre between.
Er det nødvendigt at konvertere til en string for at kunne udvælge poster fra databasen? Er det ikke en fordel at have datoer som DateTime?
ok... og jo.. helt klart fordel at bevare datoer som "dato"'er og ikke som strenge. Dels for at kunne bruge mssql dato features - og for at bevare kompatibilet. Datoerne er jo mere eller mindre alle steder gemt som ms siden 1970. Det vil sige at dato1 er en ny datetime som du erklærer ud fra en string?
Har ud kontrolleret at denne datetime er det du forventer?
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.