IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

[date] Période du N° de semaine


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 50
    Points : 44
    Points
    44
    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.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,


    Vous pouvez faire comme ceci :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre habitué Avatar de tfc3146
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2009
    Messages : 79
    Points : 150
    Points
    150
    Par défaut
    Pour moi, le plus simple serait de créer une table DATE.
    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

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Regarder ceci
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 50
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup, c'est impec !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2007, 16h30
  2. Réponses: 3
    Dernier message: 07/08/2006, 10h01
  3. Réponses: 4
    Dernier message: 06/06/2006, 16h18
  4. Tester si deux dates sont dans la même semaine ?
    Par boulzor dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/02/2006, 19h15
  5. Comment obtenir la date de début d'une semaine ?
    Par Vodkha dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2005, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo