Trouver une plage de dates de la semaine par l'actuel date en sql?
Je veux trouver un record en cette semaine qui vient de déclarer la date actuelle.
Exemple:
select datename(dw,getdate()) -- Example today is Friday "27-04-2012"
alors, comment puis-je obtenir de la plage de dates
start on monday "23-04-2012" or sunday "22-04-2012" As @dateStart to
end on sunday "29-04-2012" or saturday "28-04-2012" As @dateEnd
alors je peux sélectionner une requête par
select * from table where date>=@dateStart AND date<=@dateEnd
Vous avez besoin de tester pour quel jour de la semaine, vous êtes sur et soustrayez/ajouter le nombre de jours de votre date.
OriginalL'auteur user983738 | 2012-04-27
Vous devez vous connecter pour publier un commentaire.
Voici quelques commandes utiles pour obtenir chaque jour de la semaine
vous pouvez alors utiliser ces dans votre requête pour obtenir la plage de dates:
OriginalL'auteur Taryn
Si vous ne souhaitez que des enregistrements de cette semaine?
OriginalL'auteur Rango
Les requêtes que d'autres ont suggéré de travail, mais vous n'avez pas défini ce qu'est une "semaine" est fait pour vous. Selon le pays/la région et les raisons d'affaires, une semaine pourrait être dim-Sam, Lun-dim, Lun-Ven, etc.
Donc la meilleure solution pour trouver le premier et le dernier jour de la semaine est probablement un calendrier de table où vous pré-remplir les premier et dernier jours de la semaine pour chaque date que vous aurez besoin. Ensuite, vous pouvez utiliser une simple requête pour obtenir le bon de début et de fin dates à utiliser dans votre requête:
Cette solution a aussi l'avantage que vous pouvez facilement travailler avec des définitions différentes d'une semaine par l'ajout de nouvelles colonnes à votre agenda.
OriginalL'auteur Pondlife