Avatar billede lazy_warrior Nybegynder
13. juli 2005 - 14:57 Der er 1 kommentar og
1 løsning

Fang error ved DateTime Cast

Hej folkens
Jeg sidder lige og bøvler med en lille ting.
JEg prøver at konvertere en tekst om til en datetime, og det går fint, dog går det ikke så fint hvis man fremprovokerer en fejl.

lykkedes det ikke at caste til en datetime (fordi strengen har et forkert format), så skal der vælges null som resultat. Ellers skal datoen bare leveres tilbage.

Jeg skriver returnerer da denne funktion skal ligge i en funktion, lige nu tester jeg blot.

Jeg har nedenforstående kode, dog returneres (selectes) der ikke null når formatet er forkert (eksempelvis '508-07-2005'

declare @date datetime
set @Date = CAST('08-07-2005' as DateTime)
IF (@@Error <> 0) select null
select @Date

Jeg håber nogen kan hjælpe med at rette dette,
pft
Kristoffer
Avatar billede kichian Nybegynder
13. juli 2005 - 22:57 #1
Prøv:
declare @date datetime
set @Date = CAST('08-07-2005' as DateTime)
IF (@@Error <> 0)
select null
ELSE
select @Date

Dette kan skrives endnu kortere:

declare @date datetime
set @Date = CAST('08-07-2005' as DateTime)
select @Date
Avatar billede lazy_warrior Nybegynder
14. juli 2005 - 08:46 #2
Det virker ikke helt som jeg gerne vil have det.

Jeg faldt dog over noget på google groups

der er en funktion der hedder ISDATE(datostreng) som returnerer 0 eller 1.

declare @Data varchar(50)
declare @Date datetime
Set @Date = NULL

set @Data = '08-07-2005'

if (ISDATE(@Data) = 1) BEGIN
    Set @Date = CAST(@Data as DateTime)
END

return @Date
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