Avatar billede cdygaard Nybegynder
26. august 2002 - 18:25 Der er 2 kommentarer og
1 løsning

The conversion of a char data type to a datetime data type result

Jeg får følgende fejlmeddelse:

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
/indkøbsregnskab/index.asp, line 222

Min kode ser sådan her ud:
Linje 222 er sidste linje!

If Request.Form("WhatWasChosen") = "MonthlyConsumptionChosen" Then
            Dim MonthName, intMonth, Year, StartDate, EndDate, intEndDay
            Dim CostFood, CostDrinks, CostCleaning, EndSum1, EndSum2, StartDay
            MonthName = Request.Form("Month")
            intMonth = ChangeMonthNameToInteger(MonthName)
            Year = Request.Form("Year")
            StartDay = 01
            StartDate = CDate(Year & "-" & intMonth & "-" & StartDay)
            StartDate = CDate(DatePart("yyyy", StartDate) & "-" & DatePart("m", StartDate) & "-" & DatePart("d", StartDate))
            intEndDay = CalculateEndDate(MonthName, Year)
            EndDate = CDate(Year & "-" & intMonth & "-" & intEndDay)
            EndDate = CDate(DatePart("yyyy", EndDate) & "-" & DatePart("m", EndDate) & "-" & DatePart("d", EndDate))
            Set objConn = Server.Createobject("ADODB.Connection")
            strConnString = "Provider=SQLOLEDB;" & _
                            "Persist Security Info=FALSE;" & _
                            "User ID=sa;" & _
                            "Password=pb16950;" & _
                            "Initial Catalog=Indkøbsregnskab;" & _
                            "Initial File Name = C:\Programmer\Microsoft SQL Server\MSSQL\" & _
                            "DATA\Indkøbsregnskab_Data.mdf;"
            objConn.Open strConnString
            strSQL = "SELECT * FROM Consumption_T WHERE Date_DT > '" & StartDate & "'" & _
                    " AND Date_DT < '" & EndDate & "' ORDER BY Date_DT"
            Set objRS = Server.Createobject("ADODB.Recordset")
            objRS.Open strSQL, objConn, adOpenStatic, adLockReadOnly, AdCmdText

Hvad er der galt?
Avatar billede kichian Nybegynder
26. august 2002 - 18:34 #1
Hvis default language for bruger sa er dansk, så forventes årstal tilsidst.
Avatar billede coltau Juniormester
26. august 2002 - 22:10 #2
Hvis Session.LCID = 1030 så får du denne SQL-sætning:
"SELECT * FROM Consumption_T WHERE Date_DT > '01-04-2002' AND Date_DT < '30-04-2002' ORDER BY Date_DT"
Hvis Session.LCID = 1033 så får du denne SQL-sætning:
"SELECT * FROM Consumption_T WHERE Date_DT > '4/1/2002' AND Date_DT < '4/30/2002' ORDER BY Date_DT"

Jeg kan forestille mig at du anvender den første (LCID=1030) da datoer så vises med dansk format - men MS-SQL vil jo nok have den nederste (LCID=1033) for at den kan forstå datoerne.
På en eller anden måde er du nok nødt til at ændre datoformatet i dine SQL-sætninger således at du altid anvender en af disse datoformater: MM/DD/YYYY eller YYYY/MM/DD
Avatar billede cdygaard Nybegynder
30. august 2002 - 13:26 #3
Tak for det coltau, jeg ændrede Session.LCID til 1033 og så virkede det. :)
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
Kurser inden for grundlæggende programmering

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