Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi [date] + ([heure] - [décalage]) est-il non déterministe dans SQL Server 2008 ?

Votre '1900-01-01' est non déterministe car il dépend des paramètres de langue. bien sûr, c'est sans ambiguïté pour les paramètres DMY ou MDY, mais généralement c'est ambigu

Essayez '19000101'  : SQL Server traite les dates et les heures de manière quelque peu étrange :"aaaa-mm-jj" peut être traité comme "aaaa-jj-mm" si vous avez des paramètres britanniques bien qu'ils soient théoriquement ISO

Edit :utilisez ceci pour supprimer l'aspect de la date :DATEADD(day, 0, DATEDIFF(day, 0, [time]))

Edit2 :1er janvier 1900 est zéro dans les formats datetime, donc pas besoin de le soustraire. Pouvez-vous publier des exemples de données et de sortie, s'il vous plaît ?