b4sh Geschrieben 1. September 2011 Geschrieben 1. September 2011 Hallo zusammen, ich programmiere in C# im Moment ein Addon für unsere Software. Jetzt bin ich auf ein Problem in SQL gestoßen: Und zwar beim Update einer Tabelle in dem Datumsfelder sind. Das Datum wird in der Software so angezeigt und auch ausgelesen (GRID) DD.MM.YYYY HH:MM:SS Beim Speichern muss ich also das Datum Konvertieren in dieses Format ( SQL SERVER): YYYY-MM-DD HH:MM:00.000 Soweit so gut. Ich Convertiere also im SQLStatement meinen String : [NAG_PROJENDE] = CONVERT(datetime,'" +Datumsstring + "',126) Solange die Tagesangabe unter 12 bleibt funktioniert der Update, überschreitet er allerdings die 12 bekommen ich einen Fehler nicht nur im Programm sondern auch im SQLSERVER wenn ich das Statement reinkopiere: Ich Dachte erst er vertauscht mir Tag und Monat auch das ist nicht der Fall.. Wo könnte der Fehler liegen? Gruß b4sh
Pixie Geschrieben 1. September 2011 Geschrieben 1. September 2011 Lt. CAST und CONVERT (Transact-SQL) hat die 126 kein Leerzeichen, sondern ein 'T'
Goos Geschrieben 1. September 2011 Geschrieben 1. September 2011 Konvertieren solltest nicht. Wenn du auf deiner Verbindung vorm Eintragen des Datums ein SET DATEFORMAT DMY absetzt, dann klappts auch. Goos
b4sh Geschrieben 1. September 2011 Autor Geschrieben 1. September 2011 Ja weiss ich ... ich hab schon alles mögliche probiert... und jetuzt ist ein kollege draufgekommen... es ist 0.... DEFAULT !! 4 STUNDEN MIT DEM sch.... gespielt und es is default!
Goos Geschrieben 1. September 2011 Geschrieben 1. September 2011 Was ist los? Bitte nochmal verstaendlich Goos
Gooose Geschrieben 1. September 2011 Geschrieben 1. September 2011 Wenn du das Datum an die Datenbank übergibst sollte via SqlParameterCollection.AddWithValue der Typ passend umgewandelt werden. Du kannst ja spaßeshalber mal schauen, wie das Ergebnis im Profiler aussieht. An Sonsten schau dir mal Standard Date and Time Format Strings in der MSDN an.
streffin Geschrieben 7. September 2011 Geschrieben 7. September 2011 welche standard Datumsformatierung der Server hat ist egal. Du schreibst den Datentyp Datetime in die Tabelle, nicht den String zu dem der Server das Datum standartmäsig konvertiert. Du konvertiertst einen String zum Datum, nicht umgekehrt. Bei deinem Format hier brauchst du : DECLARE @beispiel nvarchar(255) SET @beispiel = '07.09.2011 15:01:22:660' PRINT CONVERT(DATETIME, @beispiel, 104) --> : 'Sep 7 2011 3:01PM' Gruß Sven
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden