Jump to content
Sign in to follow this  
Skippi

Sql_DateTime

Recommended Posts

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

Share this post


Link to post
Share on other sites

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.

 

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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!

 

 

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...