web-dev-qa-db-fra.com

Erreur lors de la conversion du type de données nvarchar en date et heure SQL Server

Je suis confronté à un problème

Erreur lors de la conversion du type de données nvarchar en date/heure

lors de l'insertion d'une date en tant que littéral de chaîne au format 26/01/2017. J'utilise ce code dans SQL Server lors de l'insertion:

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

Essayez CONVERT(DATETIME, @PaymentDate, 103)

104 est le style allemand qui utilise des points entre les chiffres, par opposition aux barres obliques. 103 est le style britannique/français.

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

3
David Marchelya

J'ai remarqué que votre question est également marquée avec c # .
Si vous passez la date de c # au serveur SQL, ne transmettez pas les dates en tant que chaînes. Passez-les en tant que DateTime.
Le .Net DateTimemappe directement à celui de SQL Server DateTime .
De cette façon, vous ne devrez pas du tout traiter le format d’affichage, car c # et SQL Server ne stockent pas le format d’affichage dans DateTime.

Si vous avez vraiment besoin de convertir la chaîne '26/01/2017' en date, vous devriez utiliser 103 comme argument de style, comme suggéré dans une autre réponse.

2
Zohar Peled

Cet exemple fonctionne sans aucun problème:

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

Résultat:

2017-01-26 00:00:00.000
1
Vijunav Vastivch


0
Sumit Jha

Essayez ces codes et assurez-vous que la valeur de la date n'est pas nulle et passée 1970-1-1。

CONVERT(DATETIME,@PaymentDate,103)

Ou

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