Pour obtenir tous les week-end dates de l'année en cours en SQL?
J'ai essayé, mais ne pouvait pas obtenir la bonne solution. Je veux une requête SQL qui répertorie tous les week-end dates de l'année en cours.
J'ai essayé cette requête SQL:
WITH hier(num, lvl) AS (
SELECT 0, 1
UNION ALL
SELECT 100, 1
UNION ALL
SELECT num + 1, lvl + 1
FROM hier
WHERE lvl < 100
)
SELECT lvl [Week],
convert(date,DATEADD(dw, -DATEPART(dw, DATEADD(wk,DATEDIFF(wk,0,'12/31/'+convert(nvarchar,YEAR(getdate()))), 0)+6 ),
DATEADD(wk, DATEDIFF(wk,0,'12/31/'+convert(nvarchar,YEAR(getdate()))), 0)+6 ) - num * 7,101) [End Date]
FROM hier a
where num < 52
ORDER BY [End Date] asc
Sa sortie, c'est comme cela:
Week End date
52 2012-01-14
51 2012-01-21
50 2012-01-28
49 2012-02-04
Je veux les dates depuis le début – donc, le ci-dessus est manquant un week-end, qui est 2012-07-01
. Aussi, je veux les numéros de semaine pour montrer que 1, 2, 3...
au lieu de 52, 51...
.
Tout d'abord, définir ce que vous signifie en fin de semaine date - différentes cultures définissent ces choses différemment. En supposant que vous dire un week-end, les samedis et dimanches, à quelle date avez-vous besoin? Le samedi, le dimanche, les deux? Si les deux, comme deux colonnes en une seule ligne, ou sous forme de lignes séparées?
Date de fin est le samedi
Date de fin est le samedi
OriginalL'auteur Kartik Patel | 2012-09-19
Vous devez vous connecter pour publier un commentaire.
Découvrez cette blog.
Votre question est expliquée en détail.
Cette solution repose sur l'utilisateur d'avoir les paramètres de langue anglais (d'autres cultures aurait de date différents noms)
Patel WeekofYr = DATEPART(SEMAINE, FromDate).Même ma requête fonctionne de la même
OriginalL'auteur randoms
Aidera
Résultat(Partiel)
OriginalL'auteur Niladri Biswas
Essayer de trouver le premier samedi en faisant ceci:
Puis, dans une table temporaire, ajoutez cette date et la date suivante (dimanche).
Après cela, la boucle est la suivante:
Il peut être plus élégante des façons, mais c'est mon quick & solution sale. Comme vous n'avez pas poster tout le code de ce que vous avez essayé, je vais laisser la mise en œuvre jusqu'à vous.
OriginalL'auteur Thorsten Dittmar
vous pouvez essayer ce
OriginalL'auteur Anant Dabhi
cela fonctionne aussi
OriginalL'auteur Jester
D'abord, générer un ensemble de tous les jours dans l'année en cours (
AllDaysInYear
). Ensuite, sélectionnez ceux dontweekday
est un samedi. La valeur que j'ai utilisé ('20120714'
) n'est pas très important - il a juste à être tout samedi, à partir de n'importe quelle année. Je suis juste de l'utiliser pour éviter d'avoir besoin d'avoir unDATEFIRST
ou les paramètres de langue.OriginalL'auteur Damien_The_Unbeliever
Cette requête montre comment obtenir le premier jour de cette année et le premier jour de l'année suivante, dans la première partie. Le premier jour de la prochaine année est calculée une seule fois, afin de ne pas garder d'obtenir et de comparer les ans sur les pièces.
OriginalL'auteur RichardTheKiwi
OriginalL'auteur valex