Je dois écrire une instruction SQL Select pour sélectionner tous les enregistrements où DateCreated tombe un week-end pour les 4 dernières semaines. Je sais que je peux le faire en codant en dur le select comme celui ci-dessous. Mais je me demandais s'il y avait un moyen plus facile d'utiliser les fonctions de date T-sql.SQL - Sélectionne uniquement les enregistrements des week-ends
SELECT * FROM audit_table
WHERE DateCreated BETWEEN '07-31-2010 00:00:00' AND '08-01-2010 23:59:59'
OR DateCreated BETWEEN '07-24-2010 00:00:00' AND '07-25-2010 23:59:59'
OR DateCreated BETWEEN '07-17-2010 00:00:00' AND '07-18-2010 23:59:59'
OR DateCreated BETWEEN '07-10-2010 00:00:00' AND '07-11-2010 23:59:59'
Notez que vous devez se méfier de ce que l'installation de SQL Server pense est le premier jour de la semaine - voir la documentation de '@@ DATEFIRST' - http://msdn.microsoft.com/fr-fr/library/ms187766.aspx –
' DateCreated> = cast (floor (cast (DATEADD (WK, -4, GETDATE()) comme float)) comme datetime) ':) – dotjoe
Et sur SQL 2008, vous pouvez faire CONVERT (DATE, DATEADD (WK, -4, GETDATE())) – SQLMenace