当我尝试将带有日期/时间的记录插入到 MSSQL 2008日期时间字段中时
$pQuery = "INSERT INTO myTable (myDate) VALUES (:my_date)";
$ps = $pdo->prepare($pQuery);
$ps->bindValue("my_date", date("Y-m-d H:i:s",strtotime('01.07.2013')), PDO::PARAM_STR);
$ps->execute();
使用代表 2013 年 7 月 1 日的字符串“01.07.2013”(DD.MM.YYYY),我最终在代表 2013 年 1 月 7 日的表中得到值“2013-01-07 00:00:00”。
如果日期大于 12,插入失败并出现 PDOException "SQLSTATE[22007]: [Microsoft][SQL Server Native Client 11.0][SQL Server]nvarchar 数据类型到 datetime 数据类型的转换导致 out-of -范围值”。
当我对datetime2字段执行完全相同的操作时,它被正确插入。任何人都知道如何规避这个问题?将数据类型从 datetime 更改为 datetime2 不是一种选择。谢谢你。