Avatar billede decrypto Nybegynder
18. marts 2006 - 14:59 Der er 13 kommentarer

Stored Procedure på SQL Server conversion fejl

Jeg får følgende fejl, når jeg smider en dato med over som argument til min st. proc på SQL serveren.

Server: Msg 242, Level 16, State 3, Line 1
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
The statement has been terminated.

Hvordan fixer jeg det.

Datoen er fx. 14-08-2000
Avatar billede decrypto Nybegynder
18. marts 2006 - 15:01 #1
Skal jeg have en eller anden CONVERT rundt om mit @date argument? Jeg kan ikke huske syntaksen, men er det ikke noget lignenden CONVERT(@date, ???)
Avatar billede a1a1 Novice
18. marts 2006 - 15:02 #2
du kan give den en "amerikansk" dato
2000-08-14 (yyyy-mm-dd)
Avatar billede arne_v Ekspert
18. marts 2006 - 15:04 #3
amerikansk tid er mm-dd-yyyy

men der er mange muligheder for dato format

hvis SP kaldes fra en app, så var parameters/prepared statement jo nok smart
Avatar billede a1a1 Novice
18. marts 2006 - 15:05 #4
ja du kan også converte
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Avatar billede a1a1 Novice
18. marts 2006 - 15:07 #5
;o) ok så er det ikke amerikansk, men så std. sql (måske), men det virker altid ;o)
Avatar billede decrypto Nybegynder
18. marts 2006 - 15:07 #6
hmmm jeg kan huske en syntaks der siger noget lignende CONVERT(@date, 105 ?????)

Jeg kan bare ikke finde, mit gamle eksempel frem.....Er det ikke noget i den retning.
Avatar billede decrypto Nybegynder
18. marts 2006 - 15:08 #7
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )<- fandt jeg også på msdn, men jeg savner et eksempel
Avatar billede a1a1 Novice
18. marts 2006 - 15:15 #8
noget ala
convert(datetime, @date, 105)
105 ~ italiensk
113 ~ Europe default + milliseconds
Avatar billede decrypto Nybegynder
18. marts 2006 - 15:21 #9
OKay prøver, men italiensk er jo dd-mm-yy, hvis man er interesseret i dd-mm-yyyy, hvilken skal man så bruge???
Avatar billede decrypto Nybegynder
18. marts 2006 - 15:35 #10
hmmm faktisk får jeg nu en exception i mit .net projekt:
$exception    {"Error converting data type nvarchar to datetime."}System.Exception {System.Data.SqlClient.SqlException}

Når jeg kalder st. proc med den angivne parameter i SQL Query Analyzeren, så virker min st. proc., men når jeg sender argumentet med i min .net metode, så fejler det.

Hvad kan eg fixe her`?
Avatar billede a1a1 Novice
18. marts 2006 - 16:57 #11
i flg. sql help
italiensk
With century (yyyy) = 105
Without century (yy) = 5
eu
113 eller 13 er begge med "century"
Avatar billede arne_v Ekspert
18. marts 2006 - 20:41 #12
når vi nu snakker C# og ADO.NET så syntes jeg at Parameters må være den rigtige løsning
Avatar billede arne_v Ekspert
22. april 2006 - 21:52 #13
tid at få afsluttet her ?
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