Bonjour,
Dans une des tables, la date a ce format :
"
2002-01-19 00:00:00"
C'est la représentation qui vous est donnée par l'analyseur de requêtes ou SQL Server Management Studio pour les dates stockées au type SMALLDATETIME.
Ce type stocke les dates sur 4 octets :
- 2 pour le nombre de jours écoulés depuis le premier janvier 1900
- 2 pour le nombre de minutes écoulées depuis minuit
Donc ce qui vous est affiché, quelle que soit l'application cliente, n'est qu'un représentation facilement lisible.
Si vous écrivez :
SELECT * FROM ac_prod WHERE datesaisie = CONVERT(datetime, '19/01/2002 00:00:00', 103)
Cela va fonctionner.
Alors que si vous écrivez :
SELECT CAST('19/01/2002 00:00:00' AS datetime)
C'est à dire ce que fait en interne SQL Server, vous obtenez l'erreur, parce que, comme vous l'a suggéré Kagemaru, le moteur croit que vouis lui demandez le 2e jour du 19e mois.
Pour savoir quel format est utilisé par votre instance : DBCC USEROPTIONS.
@++
Partager