我正在使用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日那样写日期,而是日期字段得到30/12/1899,这可能意味着我给出的格式不正确或者日期字段根本没有数据。有什么想法吗?
答案 0 :(得分: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#)");