Datetime Format für SQL Datenbank

Bild

Betrifft: Datetime Format für SQL Datenbank
von: Malte
Geschrieben am: 06.11.2015 07:45:29

Hallo,
ich verzweifle momentan ein datetime Field in einer SQL-Datenbank mittels VBA zu füllen.
Datetime gibt laut der offiziellen Seite das Format „yyyy-mm-dd hh:nn:ss“ an (https://msdn.microsoft.com/de-de/library/ms187819%28v=sql.120%29.aspx)
Ich habe mir also einen String zusammengebaut, der exakt dieses Format aufweist:

Sub bsp
str_time1 = WorksheetFunction.Text(ws.Cells(i, 9), "hh:MM:ss")
str_time2 = WorksheetFunction.Text(ws.Cells(i + 1, 9), "hh:MM:ss")
str_date = WorksheetFunction.Text(ws.Cells(i, 10), "yyyy-mm-dd")
            
ges_datetime1 = str_date & " " & str_time1
ges_datetime2 = str_date & " " & str_time2
End Sub

Wenn ich nun meinen SQL Insert-String aufrufe:
sub test
sSQL = "INSERT INTO Zeiterfassung (ZeitAnfang,ZeitEnde) VALUES(" & ges_datetime1 & " , " & ges_datetime2 &")
end sub
Sieht der zusammengebaute String so aus:
INSERT INTO Zeiterfassung (ZeitAnfang,ZeitEnde) VALUES (2015-11-03 08:00:00,2015-11-03 08:30:00)
Dabei erhalte ich immer den Fehler:
"Falsche Syntax in der Nähe von '08'.
Wie kann das sein? Muss ich das Format für die Übertragung anders wählen?
Über Hilfe wäre ich dankbar!
Gruß
Malte!

Bild

Betrifft: AW: Datetime Format für SQL Datenbank
von: EtoPHG
Geschrieben am: 06.11.2015 08:25:42
Hallo Malte,
...immer wieder die Zeit ;-) ...ob Excel oder SQL oder ...
Datumsformate sind oft von den Language-Settings der DB abhängig und ich kenne die Flexibilität des SQL-Parser von SQL-Server zuwenig. Hier mal 2 Vorschläge, wie der SQL String IMHO aussehen könnte/müsste:

INSERT INTO Zeiterfassung (ZeitAnfang,ZeitEnde) VALUES ('2015-11-03 08:00:00','2015-11-03 08:30:00')
Wichtig die Quotes! und wenn das nicht funktioniert, vielleicht
INSERT INTO Zeiterfassung (ZeitAnfang,ZeitEnde) VALUES 
(CAST(N'2015-11-03 08:00:00' As DateTime),
 CAST(N'2015-11-03 08:30:00' As DateTime))
Am besten den String mit einem Tool wie SQL-Developer zuerst ausprobieren!
Gruess Hansueli

Bild

Betrifft: AW: Datetime Format für SQL Datenbank
von: Malte
Geschrieben am: 06.11.2015 08:34:47
Sie sind so wunderbar!
Vielen Dank! Die Quotes haben schon gereicht. Das große google konnte mir dabei bisher nicht helfen.
Vielen vielen Dank!
Gruß
Malte!

Bild

Betrifft: AW: Datetime Format für SQL Datenbank
von: Tino
Geschrieben am: 06.11.2015 09:09:55
Hallo,
versuch mal ohne Formatierung.
Sonst Zeige mal ein Beispiel (Zip-File mit Datenbank und Excel-File)

Dim DateTimeVon As Date, DateTimeBis As Date
'...
'...
'...
DateTimeVon = DateValue(WS.Cells(i, 10).Value) + TimeValue(WS.Cells(i, 9).Value)
DateTimeBis = DateValue(WS.Cells(i, 10).Value) + TimeValue(WS.Cells(i + 1, 9).Value)
sSQL$ = "INSERT INTO Zeiterfassung ([ZeitAnfang],[ZeitEnde]) VALUES " & _
        "('" & DateTimeVon & "', '" & DateTimeBis & "')"
'...
'...
'...
Gruß Tino

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datetime Format für SQL Datenbank"