1

我正在使用 PHP 将数据插入 MS Access DB (*.mdb)。CreateDate 字段的类型为日期/时间,并且插入的数据格式错误。这是我的查询:

$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)");

但不是写像 2/9/2013 这样的日期,而是日期字段得到 30/12/1899,这可能意味着我提供的格式不正确或者日期字段根本没有数据。有任何想法吗?

4

1 回答 1

2

在 Access 中,日期文字必须包含在#其中,并且格式如下:

#MM/DD/YYYY#

或者,对于日期和时间:

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

Access 还接受日期文字作为十进制数字,其中整数部分是天数,小数部分是一天的小数部分。

但在你的情况下:

$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 回答