30. september 2004 - 15:15Der er
12 kommentarer og 1 løsning
out-of-range smalldatetime value
Hej alle
Er ved at konvertere fra mysql til mssql og så får jeg denne fejl: Microsoft OLE DB Provider for SQL Server error '80040e07' The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
Ved: strSQL = "SELECT COUNT(online_now) as counter FROM CHAT_MEMBERS where last_online <> NULL and last_online between '" & Date() & " 00:00:00' AND '" & Date() & " 23:59:59'"
Sql: SELECT COUNT(online_now) as counter FROM CHAT_MEMBERS where last_online <> NULL and last_online between '30-09-2004 00:00:00' AND '30-09-2004 23:59:59'
I princippet kan problemet godt ligge i din WHERE del: last_online between '30-09-2004 00:00:00' AND '30-09-2004 23:59:59'
Prøv at skifte den ud med (i det tilfælde at dine datoer bliver tolket som amerikanske når du bruge tal ..): last_online between '30-sep-2004 00:00:00' AND '30-sep-2004 23:59:59'
Når du bruger datoer, skal du altid fortælle din SQL server hvilket datoformat du anvender.. prøv følgende:
SET dateformat dmy SELECT COUNT(online_now) as counter FROM CHAT_MEMBERS where last_online <> NULL and last_online between '30-09-2004 00:00:00' AND '30-09-2004 23:59:59'
Takker - er det noget, som jeg skal gøre en gang for alle eller skal jeg gøre det hver gang jeg kører en side eller hver gang jeg kører en sql-sætning?
"set dateformat" skal sættes inden hver sql-sætning - jeg har endnu ikke fundet nogen smartere måde at gøre det på ..
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.