Asp & sql

hallo

wer kann mir helfen habe ein problem mit der datums funktion

mein asp script sollte die uhr zeit und das datum in eine sql datenbank schreiben !

leider kommt immer die fehler meldung:„Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string.“

wer kann mir weiter helfen

thx

Guten Morgen

Ich kenne mich mit SQL-Server nid so gut aus. Aber es sieht sehr danach aus, dass Du das Datum in falscher Form übergibst…

Ich hatte das Problem auch mal und bin dann nach Suche im Net auf folgende Funktion gestossen. Ich habe eigentlich direkt alles hier reingepostet. Falls es Dich aber interessiert, habe ich aber auch noch den…

Link:
http://www.pbdr.com/vbtips/asp/dateformat.htm

Aufruf:

strFormattedDate = ConvDate (dtmDate, strFormat)

Formatierungen:

%m Month as a decimal no. 02
%b Abbreviated month name Feb
%B Full month name February
%d Day of the month 23
%j Day of the year 54
%y Year without century 98
%Y Year with century 1998
%w Weekday as integer 5 (0 is Sunday)
%a Abbreviated day name Fri
%A Weekday Name Friday
%I Hour in 12 hour format 12
%H Hour in 24 hour format 24
%M Minute as an integer 01
%S Second as an integer 55
%P AM/PM Indicator PM
%% Actual Percent sign %% 

Beispiel:
Dieses Beispiel wandelt ein US-Datum in europäisches Format um!

Quellcode der Funktion:

Function ConvDate(strDate, strFormat)

 Dim intPosItem
 Dim intHourPart
 Dim strHourPart
 Dim strMinutePart
 Dim strSecondPart
 Dim strAMPM

 If not IsDate(strDate) Then
 ConvDate = strDate
 Exit Function
 End If

 intPosItem = Instr(strFormat, "%m")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 DatePart("m",strDate) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%m")
 Loop

 intPosItem = Instr(strFormat, "%b")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 MonthName(DatePart("m",strDate),True) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%b")
 Loop

 intPosItem = Instr(strFormat, "%B")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 MonthName(DatePart("m",strDate),False) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%B")
 Loop

 intPosItem = Instr(strFormat, "%d")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 DatePart("d",strDate) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%d")
 Loop

 intPosItem = Instr(strFormat, "%j")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 DatePart("y",strDate) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%j")
 Loop

 intPosItem = Instr(strFormat, "%y")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 Right(DatePart("yyyy",strDate),2) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%y")
 Loop

 intPosItem = Instr(strFormat, "%Y")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 DatePart("yyyy",strDate) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%Y")
 Loop

 intPosItem = Instr(strFormat, "%w")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 DatePart("w",strDate,1) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%w")
 Loop

 intPosItem = Instr(strFormat, "%a")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 WeekDayName(DatePart("w",strDate,1),True) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%a")
 Loop

 intPosItem = Instr(strFormat, "%A")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & \_
 WeekDayName(DatePart("w",strDate,1),False) & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%A")
 Loop

 intPosItem = Instr(strFormat, "%I")
 Do While intPosItem \> 0
 intHourPart = DatePart("h",strDate) mod 12
 if intHourPart = 0 then intHourPart = 12
 strFormat = Left(strFormat, intPosItem-1) & \_
 intHourPart & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%I")
 Loop

 intPosItem = Instr(strFormat, "%H")
 Do While intPosItem \> 0
 strHourPart = DatePart("h",strDate)
 if strHourPart 0
 strMinutePart = DatePart("n",strDate)
 if strMinutePart 0
 strSecondPart = DatePart("s",strDate)
 if strSecondPart 0
 if DatePart("h",strDate) \>= 12 then
 strAMPM = "PM"
 Else
 strAMPM = "AM"
 End If
 strFormat = Left(strFormat, intPosItem-1) & strAMPM & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%P")
 Loop

 intPosItem = Instr(strFormat, "%%")
 Do While intPosItem \> 0
 strFormat = Left(strFormat, intPosItem-1) & "%" & \_
 Right(strFormat, Len(strFormat) - (intPosItem + 1))
 intPosItem = Instr(strFormat, "%%")
 Loop

 ConvDate = strFormat

End Function

Hoffe, dass ich Dir damit weiterhelfen konnte…

Viele Grüsse

Chris

Ich hatte das Problem auch schon einmal! Bei mir lag es daran, dass ich das Datum in deutscher Schreibweise (tt.mm.jjjj) in die Datenbank eingetragen habe, diese aber nur das amerikanische Datumsformat akzeptierte.

Setze einfach das entsprechen Länderformat vor deinem Datenbankeintrag:

für Deutsch:
–> session.LCID=1031
für Amerikanisch
–> session.LCID=1033

*sternchengeb*
Das habe ich noch gar nie von dieser Seite aus angeschaut…

Funktioniert ja einwandfrei :smile:

Übrigens die Kennung für CH (Schweiz) is:

Session.LCID = 2055

Super…
Jetzt kann ich auch Schweizer Datenbanken benutzen :wink:

Übrigens die Kennung für CH (Schweiz) is:

Session.LCID = 2055