Obtenir de la semaine date de début et de fin de semaine date à partir de numéro de semaine dans SQL Server
J'ai une requête qui compte membre de mariage de dates dans la base de données...
Select
Sum(NumberOfBrides) As [Wedding Count],
DATEPART( wk, WeddingDate) as [Week Number],
DATEPART( year, WeddingDate) as [Year]
FROM MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc
Comment puis-je savoir quand le début et la fin de chaque semaine représenté dans le jeu de résultats?
Select
Sum(NumberOfBrides) As [Wedding Count],
DATEPART( wk, WeddingDate) as [Week Number],
DATEPART( year, WeddingDate) as [Year],
??? as WeekStart,
??? as WeekEnd
FROM MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc
- Votre question était seul assez pour répondre à ma question! 🙂
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver le jour de la semaine et de faire une date à ajouter sur les jours de début et de fin dates..
Vous avez sans doute aussi envie de regarder de dépouiller le temps à partir de la date ainsi que.
DATEFIRST
à autre chose que de 7 sauts de cela.Ici est un
DATEFIRST
agnostique solution:vous pouvez également utiliser cette:
Voici une autre version. Si votre Scénario nécessite que le samedi soit le 1er jour de la Semaine et du vendredi au dernier jour de la Semaine, le code ci-dessous va gérer que:
Ci-dessous requête, fournir des données entre le début et la fin de la semaine en cours
départ du dimanche au samedi
Expansion sur @Tomalak de l' réponse. La formule fonctionne pour les jours autres que le dimanche et le lundi, mais vous avez besoin d'utiliser des valeurs différentes pour où la 5 est. Un moyen pour arriver à la valeur que vous avez besoin est
voici un lien vers le document: https://msdn.microsoft.com/en-us/library/ms181598.aspx
Et voici un tableau qui pose pour vous.
Mais vous n'avez pas à vous rappeler de la table et de la formule, et en fait, vous pourriez utiliser un peu différent aussi, le principal besoin est d'utiliser une valeur qui fera le reste le bon nombre de jours.
Ici est un exemple:
Cette méthode pourrait être agnostique de la
DATEFIRST
de Réglage qui est ce dont j'avais besoin, comme je suis en construction d'une dimension de date avec plusieurs méthodes semaine inclus.Nous laisser diviser le problème en deux parties:
1) Déterminer le jour de la semaine
La
DATEPART(dw, ...)
renvoie un nombre, 1...7, par rapport àDATEFIRST
paramètre (docs). Le tableau suivant résume les valeurs possibles:La dernière colonne contient le idéal jour de la semaine de la valeur de lundi à dimanche semaines*. Simplement en regardant le tableau, nous sommes venus avec l'équation suivante:
2) Calculer le lundi et le dimanche pour une date donnée
C'est trivial grâce à la journée de la semaine de la valeur. Voici un exemple:
De sortie:
* du dimanche au samedi des semaines, vous devez régler l'équation juste un peu, comme ajouter 1 quelque part.
Je viens de rencontrer un cas similaire avec celui-ci, mais la solution ne semble pas m'aider.
J'ai donc essayer de comprendre par moi-même. Je travaille la semaine date de début seulement, fin de semaine date doit être de la même logique.
Le plus de vote réponse fonctionne bien sauf pour le 1ère semaine et la semaine dernière d'un an. Par exemple, si la valeur de WeddingDate est "2016-01-01", le résultat sera 2015-12-27 et 2016-01-02, mais la bonne réponse est 2016-01-01 et 2016-01-02.
Essayez ceci:
Le résultat ressemble à ceci:
Il fonctionne pour toutes les semaines, du 1er ou autres.
Ce n'est pas venu de moi, mais il fait le travail fait:
Je l'ai trouvé ici.
De la semaine & Date de Fin à Partir de la Date De Power BI Formule Dax
C'est ma solution
Obtenir la Date de Début & Date de Fin, par la Coutume, Date
Pas sûr de savoir comment c'est utile, mais je me suis retrouvé ici de la recherche d'une solution sur Netezza SQL et ne pouvait pas en trouver un sur un débordement de pile.
Pour IBM netezza, vous utilisez quelque chose (par semaine le lundi, le week end du soleil) comme:
sélectionnez
next_day (WeddingDate, 'SOLEIL') -6 comme WeekStart,
next_day (WeddingDate, le "SOLEIL") que les Week-end
pour les Requêtes Access, vous pouvez utiliser dans le format ci-dessous comme un champ
Calcul direct autorisés..