2009-04-21 9 views
9

J'essaie la requête suivante dans MS-Access 2007, mais elle échoue dans le champ Heure.Insérer une commande SQL avec Datetime dans MS-Access

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 
) 

Le champ TIME est défini en tant que datetime.

Sans le champ TIME, la requête fonctionne correctement!

J'ai essayé un certain nombre de choses différentes, telles que l'inclusion du datetime dans les hachages, les guillemets, etc. Cependant, la requête échoue toujours sur le champ de temps.


Merci les gars! Cela m'a presque complètement réussi là-bas. Je continuais toujours à obtenir l'erreur de syntaxe pour l'instruction d'insertion, mais après plus de googling, j'ai réalisé que TIME pourrait être un mot-clé réservé, ainsi le mettre sur les parenthèses comme [TIME] a fonctionné!

Répondre

18

Date de & entrée du temps dans l'utilisation de l'accès n, étant donné que l'accès ne peut pas faire la conversion automatique de caractères/texte en date ou l'heure dans SQL Query (ou l'accès appeler requête) et que vous utilisez une meilleure norme internationale pour l'entrée date AAAA-MM-JJ HH: NN: SS (année à quatre chiffres, mois à deux chiffres, jour à deux chiffres, heure à deux chiffres, deuxième chiffre à deux chiffres, seconde à deux chiffres)

donc pour 4/21/2009 14:25:53 utilisation # 2009-04-21 14: 25: 53 #

ou si elle échouent toujours, vous pouvez utiliser # '2009-04-21 14: 25: 53' #

Edit: Au-dessus peut travailler si vous activez ANSI 92 ou en utilisant ADO/OLEDB comme interface de base de données, Merci David pour remarquer

Je vous suggère d'utiliser AAAA-MM-JJ HH: NN: SS et essayez avec des guillemets simples (') avant de l'utiliser # comme je l'ai dit ci-dessus

+0

FWIW format de date ISO entre guillemets simples travaille toujours pour moi. – onedaywhen

+0

Quelle interface de base de données utilisez-vous? ADO/OLEDB? Si c'est le cas, ce serait correct. Si vous travaillez dans Access, ce n'est pas le cas sauf si vous avez défini vos options pour utiliser ANSI 92 par défaut. –

+0

@David: oui généralement j'utilise ADO/OLEDB, mais ça marche aussi pour moi sur Access Query (peut-être que je l'ai mis en utilisant ANSI 92 ???) – Dels

Questions connexes