Jump to content

Sql_DateTime


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

Ich beisse mich an folgendem Problem die Zähne aus:

Habe ein SQL-Server (13.0.4206) Feld mit Spaltenname "sql_tbl_test_datetime" Datentyp "datetime"

Manuel, das per Microsoft SQL Server Management Studio (v17.6) kann ich das Feld mit Format

yyyy-MM-dd HH:mm:ss.fff zum Beispiel 2018-04-13 19:26:48.333 abfüllen und auch speichern.

Alles gut

Wenn ich aber per (Microsoft Visual Studio 2010, Version 10.0.40219.1 SP1Rel, Microsoft .NET Framework
Version 4.7.02556 SP1Rel) das Feld mit:

Dim sqlcmd AsString = "INSERT INTO sql_tbl_test " & _
"(sql_tbl_test_datetime2 ) " & _
"VALUES " & _
"('2018-04-13 19:26:48.333')"

abfüllen will, bekomme ich folgende Fehlermeldung vom Sql:

Bei der Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs.
Die Anweisung wurde beendet.

Wenn ich die Anweisung :

Dim sqlcmd AsString = "INSERT INTO sql_tbl_test " & _
"(sql_tbl_test_datetime2 ) " & _
"VALUES " & _
"('2018-04-13 19:26:48')"

absetze, ist der SQL zufrieden aber der Wert im SQL DateTime-Feld ist: '2018-04-13 19:26:48.000

Irgend welche Vorschläge?

Besten Dank

Link zu diesem Kommentar

Moin,

 

was genau ist jetzt das Problem?

 

Geht es um die Millisekunden? Laut https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-2017 sollte als Trenner auch der Doppelpunkt akzeptiert werden, geht das von deinem VS-Code aus? 

 

Gruß, Nils

 

bearbeitet von NilsK
Link zu diesem Kommentar

Danke, für eure Frage und den Vorschlag!

 

Das Problem ist das ich gerne yyyy-MM-dd HH:mm:ss.fff zum Beispiel 2018-04-13 19:26:48.333 in mein DateTime Feld abfüllen möchte. Und zwar MIT Millisekunden.

 

Und nein:

Dim sqlcmd As String = "INSERT INTO sql_tbl_test " & _

"(sql_tbl_test_datetime ) " & _

"VALUES " & _

"('1968-10-23 12:45:37:123')"

geht auch nicht.

 

 

Link zu diesem Kommentar

Ja, leider!

Wenn ich im Microsoft SQL Server Management Studio (v17.6) den Befehl:

 INSERT INTO sql_tbl_test (sql_tbl_test_datetime ) VALUES ('1968-10-23 12:45:37.888')

oder  INSERT INTO sql_tbl_test (sql_tbl_test_datetime ) VALUES ('1968-10-23 12:45:37:888')

absetze erhalte ich die gleiche Fehlermeldung

Meldung 242, Ebene 16, Status 3, Zeile 2

Bei der Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs.

Die Anweisung wurde beendet.

Link zu diesem Kommentar

Die Spalte ist als DateTime deklariert. Maximal möglicher Wert = yyyy-MM-dd HH:mm:ss.fff z.B. '1968-10-23 12:45:37.888'

Bei DateTime2 maximal möglicher Wert = yyyy-MM-dd HH:mm:ss.ffffff z.B.'1968-10-23 12:45:37.888000'

 

Es muss also möglich sein in den FeldTyp DateTime den Wert '1968-10-23 12:45:37.888' zu schreiben!

 

 

 

VIELEN DANK FÜR DIE UNTERSTÜTZUNG!

 

Die Lösung lautet: INSERT INTO sql_tbl_test (sql_tbl_test_datetime ) VALUES ('1968-10-23T12:10:05.125')

 

Das Grosse T zwischen Datum und Zeit machten den kleinen, aber entscheidende Unterschied.

 

Sau b***d aber auch!

 

 

Link zu diesem Kommentar

Kleiner Tipp: Jeder SQL-Server hat mehr oder weniger sinnvolle Funktionen, um solche Dinge zu formatieren, bei MS z.B.:

 

https://technet.microsoft.com/en-us/library/hh213396(v=sql.110).aspx

 

Bei z.B. DB2 kann man mittels https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0007107.html  

Die korrekte Formatierung als Parameter mitgeben...

 

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...