Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/06/2011, 15h54   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2008
Messages : 43
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : septembre 2008
Messages : 43
Points : 13
Points : 13
Par défaut [date] Période du N° de semaine

Bonjour,

Comment puis je récupérer la période en passant en paramètre le n° de la semaine ?

Exemple :

semaine 24 = du lundi 20/06/2011 au dimanche 26/06/2011

Merci de vos réponses,
Cdlt, Cyrille.
Cyrille36 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 17h25   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,


Vous pouvez faire comme ceci :

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
SET DATEFIRST 1
DECLARE @NumSemaine INT = 24
 
SELECT 
	DATEADD(
		WEEK,
		@NumSemaine,
		DATEADD(
			DAY,
			1 - DATEPART(
				dw,
				DATEADD(
					DAY, 
					3, 
					DATEADD(
						YEAR,
						DATEDIFF(
							YEAR,
							0,
							GETDATE()
						),
						0
					)
				) 
			),
			DATEADD(
				DAY, 
				3, 
				DATEADD(
					YEAR,
					DATEDIFF(
						YEAR,
						0,
						GETDATE()
					),
					0
				)
			) 
		)
	) AS Debut,
	DATEADD(
		DAY,
		6,
		DATEADD(
			WEEK,
			@NumSemaine,
			DATEADD(
				DAY,
				1 - DATEPART(
					dw,
					DATEADD(
						DAY, 
						3, 
						DATEADD(
							YEAR,
							DATEDIFF(
								YEAR,
								0,
								GETDATE()
							),
							0
						)
					) 
				),
				DATEADD(
					DAY, 
					3, 
					DATEADD(
						YEAR,
						DATEDIFF(
							YEAR,
							0,
							GETDATE()
						),
						0
					)
				) 
			)
		)
	)

ou avec une CTE, c'est plus lisible :
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
SET DATEFIRST 1
DECLARE @NumSemaine INT = 24
 
;WITH Jan1 AS (
	SELECT 
		DATEADD(
			YEAR,
			DATEDIFF(
				YEAR,
				0,
				GETDATE()
			),
		0
	) AS J
),
Jan4 AS (
	SELECT DATEADD(DAY, 3, J) AS J
	FROM Jan1
),
Lundi1 AS (
	SELECT 
		DATEADD(
			DAY,
			1 - DATEPART(
				dw,
				J
			),
			J
		) AS J
	FROM Jan4
)
SELECT 
	DATEADD(
		WEEK,
		@NumSemaine,
		J
	) AS Debut,
	DATEADD(
		DAY,
		6,
		DATEADD(
			WEEK,
			@NumSemaine,
			J
		)
	) AS Fin
FROM Lundi1
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 21h18   #3
Membre habitué
 
Avatar de tfc3146
 
Homme Robert Labrousse
Développeur décisionnel
Inscription : février 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Robert Labrousse
Localisation : France

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2009
Messages : 79
Points : 134
Points : 134
Pour moi, le plus simple serait de créer une table DATE.
__________________
Citation:
C'est en faisant n'importe quoi qu'on devient n'importe qui
Si un message vous a aidé, n'hésitez pas à mettre +1
tfc3146 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 21h58   #4
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 467
Points : 2 467
Envoyer un message via Yahoo à zinzineti
Regarder ceci
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/06/2011, 11h52   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2008
Messages : 43
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : septembre 2008
Messages : 43
Points : 13
Points : 13
Merci beaucoup, c'est impec !
Cyrille36 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h13.


 
 
 
 
Partenaires

Hébergement Web