# Datum in MS SQL einfügen.



## Hannibal (15. April 2005)

Ich füge über ein PHP Script Daten in einen MS SQL Server ein. Das Feld ist definiert als DateTime.

Welches Format muss das Datum in PHP haben, damit dieses richtig in die SQL Datenbank gespeichert werden kann?

Ich bekomme immer einen Fehler dass NULL nicht erlaubt sei, was ich auch so definiert habe, aber wieso wird nichts gespeichert wenn ich das Datum mit PHP erstelle?


----------



## Dennis Wronka (15. April 2005)

Wie sieht denn Dein erstelltes Datum aus?
Ich nehme mal an, dass bei DateTime ein Timestamp erwartet wird.


----------



## der_maiki (15. April 2005)

Also ich habe es bis jetzt fast immer mit time() in die Datenbank geschrieben. Das heißt, dass du ein Integer-Feld für das Datum benötigen würdest. Auslesen tust du das ganze dann mit date("d.m.Y",$datum);

Mit freundlichem Gruß
der_maiki


----------



## Hannibal (15. April 2005)

Ich habe ein Datebank bekommen in der schon viele Datensätz drin sind und der Enterprice Manager zeigt mir die Daten so an: 01.02.1999

deshalb habe ich dies mit PHP genau so gemacht und versucht zu speichern. Also was wird nun wirklich erwartet, oder was genau ist gespeichert?


----------



## Dennis Wronka (15. April 2005)

Das ist zwar jetzt aus der MySQL-Doku, aber ich denke das wird auch bei MSSQL zutreffen.



			
				MySQL-Doku hat gesagt.:
			
		

> The DATETIME type is used when you need values that contain both date and time information. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. (``Supported'' means that although earlier values might work, there is no guarantee)


----------



## Gumbo (15. April 2005)

Datenbanken werden abgefragt, nicht ausgelesen – sonst hieße es auch „Datenbankauslese“ statt „Datenbankabfrage“.

In diesem Zusammenhang möchte ich dir noch eine wirklich interessante Diskussion zum Thema Datums- und Zeit-Typen nicht vorenthalten. Allerdings bezieht sich diese Diskussion ebenfalls auf MySQL.


----------



## Hannibal (16. April 2005)

Ja in Ordnung danke, aber mit MYSQL hätte ich das ganze auch schon lange hinbekommen, ist leider einfach MSSQL!

Und der EnterpriceManager zeigt mir das wirkliche Format halt nicht an


----------



## Hannibal (16. April 2005)

Also wenn ich einfach Time in die Datenbank schreiben will, dann bekomme ich folgenden Fehler:


```
Warning: mssql_query(): message: Syntax error converting datetime from character string. (severity 16)
```

Habe den Typ des Feldes im Enterprice Manager auf VarChar geändert und nun werden mir die alten Datensätze so angezeigt: Apr 28 2005 12:00AM


----------



## Picard2k (29. April 2005)

SQL Server recognizes date and time data enclosed in single quotation marks (') in these formats: 
Alphabetic date formats (for example, 'April 15, 1998')
Numeric date formats (for example, '4/15/1998', 'April 15, 1998')
Unseparated string formats (for example, '19981207', 'December 12, 1998') 

MSDN Link

also zum beispiel
INSERT INTO [kalender_main] ([starttermin]) VALUES ('20050429')


----------

