Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
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 24/07/2006, 08h44   #1
Membre habitué
 
Avatar de agougeon
 
Inscription : mai 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 253
Points : 106
Points : 106
Par défaut [T-SQL]jours ouvrés: operation sur les dates

Bonjour, je cherche un moyen d'effectuer un calclu sur les dates.
J'aimerai calculer à partir de n'importe quelles dates J - 5 jours ouvrés (cas des week end et pourquoi pas des jours férier en fonction du calendrier...)
Merci
agougeon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 10h27   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Pour les week-end on peut utiliser un CASE:

Code :
1
2
3
4
5
6
7
8
 
declare @d date
SELECT @d='20060722'
SELECT dateadd(day, 
           case when datepart(dw, @d) = 1 then -6 
                  when datepart(dw, @d) = 7 then -5 
                  else -7 
           end, @d)
Pour les jours fériés - on peut les recenser dans une table et référencer cette table dans le case ci-dessus - un exercice qui est laissé à l'étudiant :-)

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 10h32   #3
Membre habitué
 
Avatar de agougeon
 
Inscription : mai 2005
Messages : 253
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 253
Points : 106
Points : 106
ok, je te remercie ^^
Ca devrai suffir
agougeon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 10h33   #4
Membre du Club
 
Inscription : mai 2008
Messages : 230
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 230
Points : 55
Points : 55
Bonjour,

Désolé de rouvrir ce topic mais c'est exactement ce dont j'avais besoin.

Contrairement à la 1ère question, moi il me faudrait ajouter 3 jours supplémentaire et non pas supprimer 5 jours.
Disons que j'aimerais ajouter 3 jours ouvré sans compter le samedi et le dimanche. P.e: si ma date est le vendredi 3, j'aimerais afficher le mercredi 8.

J'ai essayé de trouver la solution mais rien à faire...
Qqun peut m'aider ??

Merci d'avance
lucazzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 08h17   #5
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Si la date de départ est un jour ouvré, ceci devrait marcher:

Code :
1
2
3
4
 
declare @d date
SELECT @d = '20110118'
SELECT dateadd(dd, 3 + case when datepart(cdw, @d) < 3 then 0 else 2 end, @d)
Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 14h36   #6
Membre du Club
 
Inscription : mai 2008
Messages : 230
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 230
Points : 55
Points : 55
Bonjour,

Merci beaucoup pour votre aide, c'est exactement ce que je cherchais.

Merci.
lucazzo 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 11h38.


 
 
 
 
Partenaires

Hébergement Web