14. december 2003 - 16:18Der er
19 kommentarer og 1 løsning
Indsæt dato i database
Hvorfor kan jeg ikke få lov til at indsætte en dato i databasen med et felt af typen datetime. Jeg har et felt hvor jeg skriver f.eks. 14-12-2003 jeg får ingen fejl kode men den indsætter 10-07-1894 der er tale om et ganske almindeligt formular felt :
Fejlen skyldes at Access bruger US eller UK dato format som er yyyy-mm-dd eller mm-dd-yyyy via SQL. Når man så indsætter en dato i dansk dato format, hvor dagen er først så bytter den rundt på månede og dag i datoen.
Der er en løsning og der er at bruge dato funktionerne Year, Month og Day til at formatere din dato.
Et eksemple bemærk Access bruger # omkring datoen:
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Synes godt om
Slettet bruger
14. december 2003 - 17:27#14
Hmm lyder meget mærkeligt da som eagkeeye også siger så bruger mssql ' omkring men så prøv uden og se hvad den så siger Sql = "Insert Into tblKegler ([Date]) values (" Sql = Sql & "" & CDate(Request.Form("Date")) & ")"
Jeg bruger følgende funktion til at lave en dato der kan indsættes i et smalldatetime felt på en SQL Server 2000 Der skal ' omkring : "'" + ConvertToSqlDate(now) + "',"
Function ConvertToSqlDate(dato) dim SQLYear,SQLMonth,SQLDay
SQLYear = Year(dato) SQLMonth = Month(dato) SQLDay = Day(dato) if SQLDay<10 then SQLDay = 0&SQLDay end if if SQLMonth<10 then SQLMonth = 0&SQLMonth end if ConvertToSqlDate = SQLYear&SQLMonth&SQLDay End Function
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.