Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
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 09/02/2007, 11h52   #1
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Par défaut Année bissextile [9i]

Bonjour à tous,

Encore une question à 200 points !
Existe-t-il une fonction oracle qui permet de savoir si on est dans une année bissextile ?

merci d'avance
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h02   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
non il faut le coder à la main
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h09   #3
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Merci Fred_D,

C'est domage ça !

Par contre j'ai une remarque :
Lorsque je fait un
Code :
1
2
 
SELECT add_months(to_date('15/12/2006','DD/MM/YYYY'),12) FROM dual
Je récupère bien : 15/12/2007

mais lorsque je fait
Code :
1
2
 
SELECT add_months(to_date('28/02/2007','DD/MM/YYYY'),12) FROM dual
Je récupère 29/02/2008

C'est bizarre ça non ?
Est ce normal ?
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h10   #4
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Je n'ai pas trouvé dans la doc mais pourquoi ne pas l'écrire vous-même ?
Voici ma vision des choses, à vous de compléter :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE OR REPLACE FUNCTION EST_BISSEXTILE(PC_YEAR NUMBER)
RETURN BOOLEAN IS
  LC_dummy  VARCHAR2(20);
BEGIN
  SELECT TO_CHAR('29/02/' || PC_year, 'DD/MM/YYYY')
  INTO   LC_dummy
  FROM   DUAL;
  RETURN TRUE;
EXCEPTION WHEN OTHERS THEN -- dangereux car trop général !!!!
  RETURN FALSE;
END;
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h15   #5
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par kalyparker
mais lorsque je fait
Code :
1
2
 
SELECT add_months(to_date('28/02/2007','DD/MM/YYYY'),12) FROM dual
Je récupère 29/02/2008

C'est bizarre ça non ?
Est ce normal ?
Un élément de réponse :
http://www.developpez.net/forums/sho...d.php?t=137310
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h19   #6
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Merci plaineR,
Citation:
Un élément de réponse :
http://www.developpez.net/forums/sho...d.php?t=137310
J'avais pas vu que quelqu'un avais déjà poster ça
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h30   #7
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Pour répondre à Magnus,

ma vision est différente, mais le résultat est le même
Code :
1
2
3
4
5
6
7
8
9
declare 
 annee integer(4) := 2002; 
begin 
IF ((annee MOD 4 = 0) AND (annee MOD 100 != 0) OR annee MOD 400 = 0) then 
  DBMS_OUTPUT.put_line('bissextile'); 
else 
  DBMS_OUTPUT.put_line('pas bissextile'); 
end IF; 
end;
Merci à tous d'avoir participer à ce grand jeux

Vous êtes vraiment des chefs
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 16h28   #8
Membre du Club
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 67
Points : 67
voilà comment je vois les choses

Code :
1
2
3
4
5
6
7
8
9
10
11
12
CREATE OR REPLACE FUNCTION ff(an IN varchar2) RETURN varchar2 IS
  Result varchar2(20);
  t varchar2(10);
begin
SELECT to_char(last_day(to_date('02/'||an,'mm/yyyy')),'dd') INTO t FROM dual;
IF t = '29'
then Result := 'bisc';
else Result := 'non';
end IF;
 
  RETURN(Result);
end ff;
daliok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 22h48   #9
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Code :
extract(month FROM (trunc(d,'Y')+59))
donnera 2 les années bisextiles et 3 sinon
laurentschneider 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 01h50.


 
 
 
 
Partenaires

Hébergement Web