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

PL/SQL Oracle Discussion :

Récupérer des dates excepté d'autres


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Récupérer des dates excepté d'autres
    bonjour à tous,

    je sollicite vos habituelles collaborations afin de m'aider à créer un code en PLSQL permettant de récupérer tous les jours ouvrables sauf le vendredi et le samedi

    bien à vous.

  2. #2
    Modérateur

    Comme ceci :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    where to_char(MaDate, 'Day', 'NLS_DATE_LANGUAGE = French') not in ('Vendredi', 'Samedi');

  3. #3
    Membre confirmé
    Attention les jours sont paddés en français, donc:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    not in ('Vendredi', 'Samedi  ');

  4. #4
    Expert éminent
    ou plus proprement avec 'FM'
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    where to_char(MaDate, 'FMDay', 'NLS_DATE_LANGUAGE = French') not in ('Vendredi', 'Samedi');
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB

  5. #5
    Modérateur

    Bien vu à vous deux. Après quelques années sans pratiquer je perds un peu la main sur ce genre de détails.

  6. #6
    Membre du Club
    merci à vous tous!

  7. #7
    Membre du Club
    récupérer J-1 si fin_de_mois est vendredi ou samedi
    maintenant je vous développer un peu monde code comme suit :

    récupérer la fin du mois :
    si fin_de_mois = vendredi je récupère le jeudi ,
    si fin_de_mois = samedi je récupéré jeudi aussi

    merci par avance.

    amicalement

  8. #8
    Membre averti
    Bonjour bonjour,

    Dans l'idée, un case dans le where en se servant de la réponse déjà donnée. Un peu du style :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    WHERE CASE to_char(MaDate, 'Day', 'NLS_DATE_LANGUAGE = French')
               WHEN 'Vendredi' THEN Madate - 1 
               WHEN 'Samedi' THEN Madate - 2
    ELSE MaDate



    Me frappez pas si c'est pas bon

    Bisous bisous

  9. #9
    Expert éminent

    Citation Envoyé par vanagreg Voir le message
    Attention les jours sont paddés en français, donc:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    not in ('Vendredi', 'Samedi  ');
    Citation Envoyé par McM Voir le message
    ou plus proprement avec 'FM'
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    where to_char(MaDate, 'FMDay', 'NLS_DATE_LANGUAGE = French') not in ('Vendredi', 'Samedi');


    Sinon pour répondre à LandGreen, il faut que tu apprennes à faire l'algorithme de tes problèmes.
    1/ Mettre sur papier en français en faisant tous les cas possibles
    exemple
    Si madate est fin de mois et que c'est un vendredi alors : Faire ça
    Sinon si madate est fin de mois et que c'est un jeudi alors :
    Sinon faire ça
    2/ Ensuite transposer le texte en code plsql

    1bis et 2bis/ Vérifier si on peut regrouper des conditions.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB

  10. #10
    Membre du Club
    tout va bien à l'instant
    quelqu'un aura la gentillesse en m'expliquant le terme paddés ça a un rapport avec la taille du texte?

  11. #11
    Membre chevronné
    C'est bien ça, ce terme désigne un champ avec remplissage par des espaces

    Par exemple "Samedi" comprend des espaces à droite qui font que sa longueur n'égale pas 6 mais 8
    Pour obtenir la longueur réelle d'un champs paddé, il faut le trimé pour retirer les espaces


    Pour en avoir le coeur net :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select to_char(sysdate, 'Day', 'NLS_DATE_LANGUAGE = French') AS Jour,
      '>'||to_char(sysdate, 'Day', 'NLS_DATE_LANGUAGE = French')||'<' AS Champ_reel,
      LENGTH(to_char(sysdate, 'Day', 'NLS_DATE_LANGUAGE = French')) AS Ln
    from dual;


    Ce qui donne
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    JOUR         CHAMP_REEL   LN
    Jeudi   	>Jeudi   <	       8

  12. #12
    Expert éminent
    Paddés : Equivalent Franglais des commandes sql LPAD ou RPAD
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB

  13. #13
    Membre du Club
    merci beaucoup vous êtes généreux

  14. #14
    Rédacteur

    Citation Envoyé par Scriuiw Voir le message
    ...Pour obtenir la longueur réelle d'un champs paddé, il faut le trimé pour retirer les espaces
    Il faut "trimer" pour comprendre ce que ça veut dire, c'est "pas des" bonnes habitudes !

    Autrement dit :
    Putain les mecs, vous pouvez pas arrêter avec ce français dégueulasse ?!
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration