2009-04-21 11 views
9

Ich versuche die folgende Abfrage in MS-Access 2007, aber es schlägt auf dem Zeitfeld fehl.SQL-Befehl mit Datetime in MS-Access einfügen

INSERT INTO LOG (
    EMPLOYEECODE, STATUSID, LOCATIONID, TIME, DURATION, 
    SHIFTID, LATECOMING, EARLYGOING, LOGDATE, STATIONID 
) 
VALUES (
    1, 1, 0, '4/21/2009 2:25:53 PM', 0, 
    8, 0, 1, '1/1/2009', 1 
) 

Das Feld TIME ist als Datetime definiert.

Ohne das Feld TIME funktioniert die Abfrage gut!

Ich habe eine Reihe von verschiedenen Dingen versucht, wie das Einschließen der Datetime in Hashes, Anführungszeichen usw. Jedoch schlägt die Abfrage noch auf dem Zeitfeld fehl.


Danke Jungs! Das hat mich fast vollständig erwischt. Ich habe immer noch den Syntaxfehler für die Insert-Anweisung, aber dann weiter Googeln, erkannte ich, dass TIME könnte ein reserviertes Schlüsselwort sein, so dass es auf Box-Klammern als [TIME] funktioniert gearbeitet!

Antwort

18

Datum & Zeiteingabe beim Zugang Verwendung #, da der Zugang nicht automatisch Umwandlung von Zeichen/Text Datum oder die Uhrzeit in SQL Query (oder Access nennen es Abfrage) tun können, und Sie besser den internationalen Standard verwenden zur Eingabe von Datum Zeit, die YYYY-MM-DD HH war: NN: SS (4-stellige Jahr, 2-stellige Monat, 2-stellige Tag, 2-stellige Stunde, 2-stellige Minute, 2-stellige Sekunde)

so für 2009.04.21 14.25.53 Verwendung # 2009-04-21 14: 25: 53 #

oder wenn es immer noch nicht, können Sie # '2009-04-21 14: 25: 53' verwenden #

Edit: Above arbeiten könnte, wenn Sie ANSI ermöglichen 92 oder ADO/OLE DB als Datenbank-Schnittstelle, dank David für

unter Hinweis darauf, ich schlage vor, Sie YYYY-MM-DD HH verwenden: NN: SS-Format und versuchen Sie es mit einfachen Anführungszeichen (') vor dem Gebrauch #, wie ich oben

sagte
+0

FWIW ISO-Datumsformat in einfachen Anführungszeichen Funktioniert immer für mich. – onedaywhen

+0

Welche Datenbankschnittstelle benutzen Sie? ADO/OLEDB? Wenn ja, wäre das korrekt. Wenn Sie innerhalb von Access arbeiten, wird dies nicht funktionieren, es sei denn, Sie haben die Optionen für die Verwendung von ANSI 92 standardmäßig festgelegt. –

+0

@David: ja normalerweise benutze ich ADO/OLEDB, aber es funktioniert auch bei Access Query (vielleicht habe ich es mit ANSI 92 eingestellt ???) – Dels

Verwandte Themen