2010-11-21 11 views
0

私はMSSQL \ SQLEXPRESS 2005バックエンドでapache2から提供されるphp5.3でDoctrine 2.0を使用しています。
私の問題は、DateTimeオブジェクトでレコードを挿入するとエラーが発生するということです。DoctrineはMSSQL 2005にDateTimeを挿入できません

PDOException:SQLSTATE [22007]:[Microsoft] [SQL Serverネイティブクライアント10.0] [SQL Server] datetimeを文字列から変換するときに変換に失敗しました。

トラブルシューティングの一環として、ターゲット列が実際に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

+0

私は誤解されるかもしれないが、私はPDOは日付フォーマットを扱うだろうと思いました。のように、それはdatetimeオブジェクトを渡され、PDOはこのようなことをすることによってそれをフォーマットします。 $ dateTime-> format( "ISO8601")。私は文字列を渡そうとしましたが、非オブジェクト上で "format"を呼び出せないという不満があります。 –

+0

私のカラムは "date"とは対照的に "datetime" –

関連する問題