03. oktober 2000 - 12:59Der er
4 kommentarer og 1 løsning
Hente datoer (smalldatetime) i MS SQL Server7
Jeg har et resultset der indeholder 2 datoer (startdato og slutdato) i hver række i en MS SQL Server7 database. Jeg regner med at hente disse over i et par Vectorer og derefter for hver række undersøge dette: - Dags dato er >= startdato - Dags dato er <= slutdato
Det skal selvfølgeligt gøres for at tjekke om den pågældende række skal vises for brugeren.
Når du siger du har et resultatset, er det så et resultat af et tidligere SQL kald, eller er det \"bare\" den almindelige tabel du mener.
Hvis det er det første, har du så ikke mulighed for at ændre det SQL kald således at den samtidig kun selecterer de records hvor datoen ligger indenfor datointervallet ?
og hvis det er den anden så skal du jo alligevel selv lave SQL kaldet og kan derfor bruge \"... where ((startdato ge now()) and (slutdato le now())\"
Du siger noget - den mulighed tænkte jeg slet ikke på :-)
Men hvordan henter jeg så dags dato som skal sættes ind i SQL-kaldet og i SQL-kaldet, tjekker de 2 datoer op mod hinanden?
Dette her forstår jeg ikke helt, dvs. jeg forstår godt hvad du mener, men Det er svjv ikke ren SQL...: \"... where ((startdato ge now()) and (slutdato le now())\" ^^ ^^
Javasyntaxen er jeg ikke helt sikker på, men princippet er først og fremmest at du pakker begge tests ind i samme parantes. (test1 and test2)
Desuden skal hver test være omkranset af en parantes, og GE betyder \"Greater Than or Equal to\" og LE betyder \"Less than or equal to\". Det svarer til dine >= og <=
Så spørgsmålet er hvad dine felter i SQl basen hedder. Så vidt jeg husker har du dagsdato til rådighed med funktionen NOW() men ellers kan du starte med at lægge dagsdato ind i en var (f.eks. kaldet dagsdato) og så bruge den i testen: (Jeg gik ud fra at navnene \"slutdato\" og \"startdato\" er dine feltnavne i SQL)
select * from tabel where ((startdato >= dagsdato) AND (slutdato <= dagsdato)
eller
select * from tabel where ((startdato ge dagsdato) AND (slutdato le dagsdato)
Jeg mener nu at de koder jeg bruger er standard SQL (og det samme gælder for de fleste programmeringssprog):
LT = Less Than (<, Mindre end) LE = Less Than or Equal To (<=, Mindre end eller lig med) EQ = Equal to (=, ligmed) GE = Greater Than or Equal to (>=, Større end eller lig med) og GT = Greater Than (>, Større end)
Det bør gælde for alle sprog og sql varianter.
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.