it-swarm.com.de

Fehler beim Konvertieren des Datentyps nvarchar in datetime SQL Server

Ich stehe vor einem Problem

Fehler beim Konvertieren des Datentyps nvarchar in datetime

beim Einfügen eines Datums als Stringliteral im Format 26/01/2017. Ich verwende diesen Code während des Einfügens in SQL Server:

CONVERT(DATETIME, @PaymentDate, 104)
4
ahmed ansari

CONVERT(DATETIME, @PaymentDate, 103) ausprobieren

104 ist der deutsche Stil, der im Gegensatz zu Schrägstrichen Punkte zwischen den Ziffern verwendet. 103 ist der britische/französische Stil.

Siehe: https://msdn.Microsoft.com/en-us/library/ms187928.aspx

3
David Marchelya

Ich habe bemerkt, dass Ihre Frage auch mit c # markiert ist.
Wenn Sie das Datum von C # an den SQL-Server übergeben, übergeben Sie Datumsangaben nicht als Zeichenfolgen. Übergeben Sie sie als DateTime.
Die .Net DateTimeordnet direkt dem SQL Server DateTime zu.
Auf diese Weise müssen Sie sich nicht mit dem Anzeigeformat befassen, da c # und SQL Server das Anzeigeformat nicht in DateTime speichern.

Wenn Sie wirklich den String '26/01/2017' in date konvertieren müssen, sollten Sie für Ihr Stilargument 103 verwenden, wie bereits in einer anderen Antwort vorgeschlagen.

2
Zohar Peled

Dieses Beispiel läuft ohne Probleme:

Declare  @PaymentDate  nvarchar(40)
set @PaymentDate = '26/01/2017'
SELECT CONVERT(DATETIME,@PaymentDate,104)

Ergebnis:

2017-01-26 00:00:00.000
1


0
Sumit Jha

Probieren Sie diesen Code aus und stellen Sie sicher, dass der Datumswert nicht null und nach 1970-1-1 liegt

CONVERT(DATETIME,@PaymentDate,103)

Oder

CONVERT(DATETIME,@PaymentDate,105)
0
Johan Shen