2010-11-21 12 views
0

Ich verwende Doctrine 2.0 mit php5.3, das von Apache2 mit einem MSSQL \ SQLEXPRESS 2005-Backend bedient wird.
Mein Problem ist, dass, wenn ich gehe, um einen Datensatz mit einem DateTime-Objekt einzufügen, bekomme ich den Fehler.Doctrine kann DateTime nicht in MSSQL 2005 einfügen

PDOException: SQLSTATE [22007]: [Microsoft] [Native Client SQL Server 10.0] [SQL Server] Konvertierung fehlgeschlagen beim Konvertieren von Datetime aus Zeichenfolge.

Im Rahmen der Fehlerbehebung habe ich überprüft, dass die Zielspalte tatsächlich vom Typ datetime ist. Und ich habe die Abfrage mit dem EchoLogger Echo, das so etwas wie diese

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" }..} 

kehrt Die beunruhigende Sache ist, dass eine ähnliche Klasse der gleichen Pakete mit einwandfrei ausgeführt wird, wenn die Datetime in der gleichen Art und Weise einsetzen.

Jede Hilfe wird sehr geschätzt.

Antwort

0

Klingt wie ein Gebietsschema Problem. Um zu überwinden, schreiben Sie Ihre Strings in ISO 8601 Format, dh. YYYYMMDD

2010/21/11 
+0

2010/21/11 <> YYYMMDD ... – gbn

+0

ich verwechselt werden können, aber ich dachte, das PDO die Datumsformatierung behandeln würde. Wie in, es ist ein Datetime-Objekt übergeben, und das PDO formatiert es, indem Sie so etwas tun. $ dateTime-> Format ("ISO8601"). Ich habe versucht, eine Zeichenfolge zu übergeben, aber es beschwert sich darüber, nicht auf einem Nicht-Objekt "Format" aufrufen zu können. –

+0

Es stellte sich heraus, dass meine Spalte mit "datetime" und nicht mit "date" gekennzeichnet war –

Verwandte Themen