2009-04-21 17 views
9

MS-Access 2007で次のクエリを試行していますが、時間フィールドで失敗します。Datetimeを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 
) 

TIMEフィールドはdatetimeとして定義されます。

TIMEフィールドがないと、クエリは正常に機能します。

ハッシュ、引用符などで日付時刻を囲むなど、さまざまなことを試しました。ただし、時刻フィールドではクエリが失敗します。


ありがとう!それが私を完全にそこに迎えてくれました。私はまだ挿入ステートメントの構文エラーを取得し続けたが、それ以降のグーグルでは、TIMEは予約済みのキーワードなので、ボックスブラケットに入れて[TIME]として働いていることに気づいた!アクセス、使用中の

答えて

18

日&時刻の入力(またはアクセスがクエリそれを呼び出す)SQLクエリで日付や時刻に文字/テキストからの自動変換を行うと、あなたがより良い入力するための国際標準規格を使用することはできませんアクセスので、YYYY-MM-DD HH:NN:SS(年4桁、2桁の月、2桁の日、2桁の分、2桁の分、2桁の秒)

そう2009年4月21日2時25分53秒PM使用する#2009-04-21 14:25:53#

それはまだ失敗した場合や、使用することができます# '2009-04-21 14:25:53' #

編集:上記はあなたがANSI 92有効にした場合、作業またはデータベースインターフェイスとしてADO/OLEDBを使用している場合があります、 NN:SS形式と私は単一引用符内の

+0

FWIW ISO日付形式上の言ったように、使用する#の前に単一引用符( ')でそれを試してみてくださいおかげでデビッド

を指摘するために私はあなたがYYYY-MM-DD HHを使用することをお勧めいつも私のために働く。 – onedaywhen

+0

どのデータベースインターフェイスを使用していますか? ADO/OLEDB?もしそうなら、それは正しいでしょう。 Access内で作業している場合、デフォルトでANSI 92を使用するようにオプションを設定していない限り、それはできません。 –

+0

@David:はい通常はADO/OLEDBを使用していますが、Access Queryでも私にはうまくいきます(おそらくANSI 92 ???を使用して設定しています)。 – Dels

関連する問題