Auge: Meldung 242, Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs.

Beitrag lesen

Hallo

Tatsächlich liegt es wohl daran wie es Andreas vermutet hat. Die 16 wird als Monat interpretiert. Mache ich ein Datum wie unten, klappt es

INSERT INTO [TESTDB] ([DATUM_BEGINN]) 
            VALUES 
            ('2017-11-12 08:39:05')

Es steht dann so in der Tabelle: 2017-12-11 08:39:05.000

Dann muss wohl das PHP Script schon eine andere Formatierung machen.

Es dürfte sich dabei um Unterschiede der von PHP bzw. vom Management Studio verwendeten Zugriffswege handeln. Es gibt ja mehrere Treiber (ODBC, Native Client, diverse andere OLE-Treiber), die sich unterschiedlich verhalten. Hier mal ein Beispiel des Angebots, um einen MS-SQL-2008-Server zu kontaktieren.

Treiberauswahl für den MS SQL Server 2008

Schlussendlich geht es aber darum, die Regeln, die durch den MS SQL Server vorgeschrieben werden, zu erfüllen. Wenn du im INSERT-Statement das Datum explizit einem CONVERT unterziehst (CONVERT(datetime, '2017-11-16 08:39:05', 121)). Damit passt du die Eingabe garantiert in eines der unterstützten Formate an.

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett