29. november 2006 - 10:58
Der er
11 kommentarer og 1 løsning
Konvertering af dato (Datetime)
Hejsa. Jeg har en underlig fejl, jeg ikke lige kan se mig ud af! I en ASP kode, skal jeg indsætte en record til en SQL server. Jeg indsætter "now()" i feltet. Felttypen er Datetime På nogle maskiner virker det fint. Andre maskiner fejler min kode, med en meddelelse om at now() ikke kunne formatteres til datetime formatet. Det undrer mig, da now() vel er tiden på serveren ik'??? Det er denne kode, som fejler på nogle maskiner og virker på andre... strSQL = "Insert into Goals (" strSQL = strSQL & "kundenr, " strSQL = strSQL & "buy, " strSQL = strSQL & "potential, " strSQL = strSQL & "tid, " strSQL = strSQL & "debitor, " strSQL = strSQL & "visit, " strSQL = strSQL & "loyalty, " strSQL = strSQL & "satisfaction, " strSQL = strSQL & "goal, " strSQL = strSQL & "bruger, " strSQL = strSQL & "datestamp" strSQL = strSQL & ") " strSQL = strSQL & "values (" strSQL = strSQL & "'" & request.form("kundenr") & "'," strSQL = strSQL & request.form("buy") & "," strSQL = strSQL & request.form("potential") & "," strSQL = strSQL & request.form("tid") & "," strSQL = strSQL & request.form("debitor") & "," strSQL = strSQL & request.form("visit") & "," strSQL = strSQL & request.form("loyalty") & "," strSQL = strSQL & request.form("satisfaction") & "," strSQL = strSQL & "'" & request.form("goal") & "'," strSQL = strSQL & "'" & strUser & "'," strSQL = strSQL & "'" & now() & "'" strSQL = strSQL & ")" Conn.Execute(strSQL) Er der en som kan forklare mig hvorfor det virker fint nogle steder mens koden fejler på andre maskiner, og hvad man kan gøre for at undgå fejl. Mvh. Lasse
Annonceindlæg fra Comm2ig
29. november 2006 - 11:04
#1
har du prøvet med date() i stedet for
29. november 2006 - 11:09
#2
Vil tro det er LCID'en der driller. Smid: session.LCID = 1030 i toppen af dine sider.
29. november 2006 - 11:12
#3
Og formater så dine dato til et format som SQL-Server vil acceptere (yyyymmdd): function DBDate(fDate) dim fDay, fMon, fYear fYear= Year(fDate) fMon= Month(fDate) fDay= Day(fDate) fDay= right("0"&fDay, 2) fMon= right("0"&fMon, 2) DBDate = fYear & fMon & fDay end function
29. november 2006 - 11:13
#4
Som en helt anden løsning kunne du jo også bare bruge SQL-Servers indbygget dato funktion. Ændre: strSQL = strSQL & "'" & now() & "'" til strSQL = strSQL & "getDate()"
29. november 2006 - 11:28
#5
Eller bruge CONVERT strSQL = strSQL & "CONVERT(datetime, '" & Now() & ", 105)" Jeg skriver 105, fordi jeg regner med at Now() vil returnere formatet dd-mm-yyyy, fordi du sætter Session.LCID til 1020
29. november 2006 - 11:29
#6
Hey fennec. Det virkede sgu! Nu ser det ud til at køre fra alle maskiner! Jeg mangler dog lige tidspunktet også. Altså time, min. Hvordan får jeg dem med? /Lasse
29. november 2006 - 11:29
#7
1030 naturligvis :o)
29. november 2006 - 11:30
#8
GETDATE() returnerer også klokkeslettet, så du har det i feltet ...
29. november 2006 - 11:52
#9
Rettede til dette : DBDate = fYear & fMon & fDay & " " & time() Tak for hjælpen fennec. Og ldanielsen. Send svar for point ok! /Lasse
29. november 2006 - 12:07
#10
.o) <-- One Eyed Jack
29. november 2006 - 12:12
#11
En god ide er at have en DBdate og en DBtime funktion: function DBDate(fDate) dim fDay, fMon, fYear fYear= Year(fDate) fMon= Month(fDate) fDay= Day(fDate) fDay= right("0"&fDay, 2) fMon= right("0"&fMon, 2) DBDate = fYear & fMon & fDay end function function DBDate(fDate) dim fDay, fMon, fYear, fHour, fMin fYear= Year(fDate) fMon= Month(fDate) fDay= Day(fDate) fHour = Hour(fDate) fMin = Minute(fDate) fDay= right("0"&fDay, 2) fMon= right("0"&fMon, 2) fHour= right("0"&fHour, 2) fMin= right("0"&fMin, 2) DBDate = fYear & fMon & fDay &" "& fHour &":"& fMin end function
29. november 2006 - 12:13
#12
Klip/klistre fejl. Den sidste funktion skal selvfølgelig hedde DDTime :o) function DBTime(fDate) dim fDay, fMon, fYear, fHour, fMin fYear= Year(fDate) fMon= Month(fDate) fDay= Day(fDate) fHour = Hour(fDate) fMin = Minute(fDate) fDay= right("0"&fDay, 2) fMon= right("0"&fMon, 2) fHour= right("0"&fHour, 2) fMin= right("0"&fMin, 2) DBTime = fYear & fMon & fDay &" "& fHour &":"& fMin end function
Kurser inden for grundlæggende programmering