Avatar billede nightowl24 Nybegynder
18. august 2006 - 12:35 Der er 3 kommentarer og
1 løsning

Sammenligning af datoer

Hej

Jeg skal søge i en mssql database ud fra en til- og fra dato/tid.

Min tabel indeholder et tekstfelt der indeholder en dato samt tid: ex. 2006-07-13 15:55:36

Har prøvet: SELECT * FROM tabel where CONVERT(DateTime, datofelt) > '07-19-2006 11:00:00' AND CONVERT(DateTime, datofelt) < '07-19-2006 12:00:00'

- men det virker ikke. Hvordan er den korrekte måde at gøre dette på?
Avatar billede fennec Nybegynder
18. august 2006 - 13:08 #1
Du gemmer altså dine datoer i et tekstfelt i stedet for et dateTime felt??
Det kan du jo passende lave om nu.

Gem ALTID værdier i den dertilhørende datatype. Ellers kan man ikke udnytte de egenskaber feltet giver, også løser dette problem sig selv.
Avatar billede fennec Nybegynder
18. august 2006 - 13:16 #2
Men ellers virker denne udgave hos mig:
SELECT    *
FROM      MinTmp
WHERE    (CONVERT(DateTime, tekstFelt) > '2006-07-19 11:00:00') AND (CONVERT(DateTime, tekstFelt) < '2006-07-19 12:00:00')

Læg mærke til at datoformatet er yyyy-mm-dd
Avatar billede nightowl24 Nybegynder
18. august 2006 - 13:28 #3
Jeg får fejlen:

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

og mht til din første post, så er det ikke mig der har lavet databasen, men den benyttes af et andet program som jeg ikke kender til, så kan ikke bare lave det om.
Avatar billede ldanielsen Nybegynder
18. august 2006 - 16:06 #4
Hvis datoen er gemt i et tekstfelt skal det konverteres til varchar før du sammenligner:

SELECT * FROM tabel
where
CONVERT(varchar(19), datofelt, 105) > '07-19-2006 11:00:00'
AND
CONVERT(varchar(19), datofelt, 105) < '07-19-2006 12:00:00'


Hvis datoen er gemt i et datetime felt skal teksten konverteres til datetime før der sammenlignes:


SELECT * FROM tabel
where
datofelt > CONVERT(DateTime, '07-19-2006 11:00:00', 105)
AND
datofelt < CONVERT(DateTime, '07-19-2006 12:00:00', 105)

I begge tilfælde bruger jeg formatet 105 fordi det passer til dit tekstformat
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester