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)
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
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 DateTime
mappe 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.
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
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)