1

PHP を使用して MS Access DB (*.mdb) にデータを挿入しています。フィールド CreateDate のタイプが Date/Time であり、挿入されるデータの形式が正しくありません。これは私のクエリです:

$date = date('d/m/Y');
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)}; Dbq="mydb.mdb"; Uid=Admin");     
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec("INSERT INTO Cup_Package (Cup_BorgPartnerID, Name, CreateDate)           VALUES (1, 'Catalog and Price Update', $date)");

しかし、2013 年 2 月 9 日のような日付を書き込む代わりに、日付フィールドは 1899 年 12 月 30 日を取得します。これは、おそらく、指定している書式設定が正しくないか、日付フィールドにデータがまったくないことを意味します。何か案は?

4

1 に答える 1

2

Access では、日付リテラルは次のように囲む必要があり、#次のように書式設定されます。

#MM/DD/YYYY#

または、日付と時刻の場合:

#MM/DD/YYYY HH:MM:SS#

Access では、整数部分が日数で、小数部分が 1 日の分数である 10 進数として日付リテラルも受け入れます。

ただし、あなたの場合:

$date = date('m/d/Y');
$dbh->exec("INSERT INTO Cup_Package (Cup_BorgPartnerID, Name, CreateDate) 
           VALUES (1, 'Catalog and Price Update', #$date#)");
于 2013-09-02T23:35:08.327 に答える