[oracle]déterminer la date du premier jour d'une semaine par le numéro de semaine

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 412 fois - Téléchargée 13 fois

Contenu du snippet

Déterminer la date du premier jour d'une semaine par le numéro de semaine.

Le principe est de déterminer le premier lundi de l'année pour l'additionner au nombre de semaine * 7

Source / Exemple :


--------------------------------------------------------------------------------------------------------------
-- Retrieve first date of week 
--------------------------------------------------------------------------------------------------------------

FUNCTION getFirstDateOfWeek(vi_week_number IN  INTEGER,
		 					vi_year		   IN  INTEGER)
                            RETURN DATE
IS
v_first_monday_of_the_year INTEGER;
v_value INTEGER;

BEGIN

v_first_monday_of_the_year := -1;
v_value := 0;

	WHILE v_value <> 2 /*Find first Monday*/
	LOOP
	  	  v_first_monday_of_the_year := v_first_monday_of_the_year + 1; 
		  v_value := TO_CHAR(TO_DATE(vi_year || '0101', 'YYYYMMDD') + v_first_monday_of_the_year, 'D');	
	END LOOP;	  
	
	RETURN TO_DATE(vi_year || '0101', 'YYYYMMDD')+(v_first_monday_of_the_year + (7 * (vi_week_number - 2)));
	
END;

Conclusion :


Pas trouvé d'équivalent sur le Net, du coup je publie mon source

A voir également

Ajouter un commentaire

Commentaires

EricSQL
Messages postés
33
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
24 février 2011
-
Bonjour,

tu n'as pas besoin de faire une fonction pour calculer cela.
Un truc du genre :
Select trunc(to_date('2009', 'YYYY') + 7 * semaine, 'IW')
From DUAL
;

Eric
valantino1
Messages postés
12
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
1 décembre 2010
-
Salut,
Super , mais svp j ai besoin de la meme fonction en transact (sql server ) , est ce que c est possible :( ;
merci bien d'avance .
A+
valantino1
Messages postés
12
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
1 décembre 2010
-
SVP : si qq un peux m'aider :je veux avoir une resltat comme celle la(mais en transact) :

sql>SELECT to_char(trunc(sysdate,'IW'),'DL') FROM dual;

sql>lundi 10 mai 2010

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.