2010-11-21 43 views
0

我使用的是Doctrine 2.0与php5.3,通过apache2与MSSQL \ SQLEXPRESS 2005后端提供服务。
我的问题是,当我去插入一个DateTime对象的记录,我得到的错误。Doctrine无法将DateTime插入到MSSQL 2005中

PDOException:SQLSTATE [22007]:[Microsoft] [SQL Server Native Client 10.0] [SQL Server]从字符串转换datetime时转换失败。

作为疑难解答的一部分,我已验证目标列实际上是类型的日期时间。而我一直在使用它返回这样

INSERT INTO proposal (proposaldate, ...) 
    VALUES (?..) { [1]=> object(DateTime)#264 (3) { ["date"]=> string(19) "2010-11-20 22:15:12" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "America/New_York" }..} 

最令人不安的事情的东西是使用相同的程序包相似的类中插入相同的方式,日期时间执行时的完美呼应EchoLogger查询。

任何帮助,非常感谢。

回答

0

听起来像一个语言环境问题。为了克服,写出你的字符串在ISO 8601格式,即。 YYYYMMDD

2010/21/11 
+0

2010/21/11 <> YYYMMDD ... – gbn 2010-11-21 08:59:19

+0

我可能是错的,但我认为PDO将处理日期格式。如在它,它是通过一个日期时间对象,并通过做这样的事情PDO格式化。 $ dateTime->格式( “ISO8601”)。我曾尝试将它传递给一个字符串,但它抱怨无法在非对象上调用“格式”。 – 2010-11-21 22:25:00

+0

原来我的专栏被标记为“日期时间”而不是“日期” – 2010-11-24 00:01:44