Est-ce que quelqu'un pourrait m'expliquer cela parce que je suis un peu confus quant à la raison pour laquelle cela se produit? Fondamentalement ce que je voudrais savoir est pourquoi il y a une différence entre la date du dimanche et tous les autres jours de cette semaine dans les semaines de l'année 0. Si cela a du sens!DateDiff SQL Server Problème
J'ai essayé de régler la date en premier mais cela n'a eu aucun effet. Sûrement lundi - dimanche de cette semaine devraient tous avoir la même différence dans les semaines à partir de l'année zéro?
Set Datefirst 1
Select DateName(dw,0) --Monday
Select DateDiff(week, 0, '20091109')--Monday: Difference 5732
Select DateDiff(week, 0, '20091114')--Saturday: Difference 5732
Select DateDiff(week, 0, '20091115')--Sunday: Difference 5733
Ce qui est encore plus bizarre est que si vous prenez les deux mêmes dates et la date que vous obtenez les diff une semaine pour les 6 jours et un pour l'autre. Est-ce que j'ai râté quelque chose?
Select DateDiff(dd,'20091109','20091115')--6 Days difference
Select DateDiff(ww,'20091109','20091115')--1 Week difference
J'utilise SQL Server 2005
Je pense que vous êtes sur quelque chose ... Sélectionnez DateDiff (wk, '20091108', '20091114') renvoie 0. – Mayo
C'est exactement la raison. SQL Server considère la semaine du calendrier du dimanche au samedi dans la plupart des configurations. – BBlake
En tant qu'addendum, vous pouvez définir quel jour de la semaine SQL Server considère être le premier jour de la semaine avec une commande SET DATEFIRST. suivi d'un 1 (lundi) à 7 (dimanche). Dans l'installation par défaut, il s'agit d'un 7 (dimanche) – BBlake