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

Shell et commandes GNU Discussion :

Manipulation des dates


Sujet :

Shell et commandes GNU

  1. #1
    Invité
    Invité(e)
    Par défaut Manipulation des dates
    Bonjour,

    Je suis en train de faire un script ksh afin de définir une date de purge.
    J'ai dans ma base 3 durées de conservations des données différentes (variable selon les tables à purger).

    Pour calculer la date au delà de laquelle je dois supprimer les données (date <= 'date_purge'), j'avais commencé à utiliser ceci :

    Code shell : Sélectionner tout - Visualiser dans une fenêtre à part
    date --date "36 months ago"

    Sauf que j'aimerai que ce 36 soit paramétrable selon la table que je dois purger.

    Code shell : 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
     
    # Je récupère mes 3 durées de conservations dans des variables
    DUREE_CONS_B=`sqlplus -s $ST_USERNAME/$ST_PASSWD$ST_DATABASE << EOF
    	select duree from table where cle='SPEPurgB';
    EOF`
     
    DUREE_CONS_A=`sqlplus -s $ST_USERNAME/$ST_PASSWD$ST_DATABASE << EOF
    	select duree from table where cle='SPEPurgA';
    EOF`
     
    DUREE_CONS_O=`sqlplus -s $ST_USERNAME/$ST_PASSWD$ST_DATABASE << EOF
    	select duree from table where cle='SPEPurgO';
    EOF`
     
    #Et je calcule la date de début de purge pour la table de type A
    date --date "${DUREE_CONS_A} months ago" >> DATE_PURGE_A
    #Table de type B
    date --date "${DUREE_CONS_B} months ago" >> DATE_PURGE_B
    #Table de type O
    date --date "${DUREE_CONS_O} months ago" >> DATE_PURGE_O

    sauf que ça ne marche pas. Est-ce qu'il y a un système ?

    Où il faut que je fasse complètement différement ?

    Merci par avance pour vos réponses

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par Cyann31 Voir le message
    sauf que ça ne marche pas.
    Ah bon ?
    Tu ne nous montres ni ce qu'il a dans les variables créées, ni ce qui est ajouté dans DATE_PURGE_* par les commandes "date --date ...", ni les messages d'erreurs éventuels.

    Est-ce qu'il y a un système ?
    Un système ??

    Où il faut que je fasse complètement différement ?
    Probablement pas.
    ɹǝsn *sıɹɐlos*

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je reprends alors :

    DATE_CONS_A = DATE_CONS_B = 36 (mois)
    DATE_CONS_O = 40 (mois)

    Quand je fais :
    Code shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    date --date "${DUREE_CONS_A} months ago" >> DATE_PURGE_A
    date --date "${DUREE_CONS_B} months ago" >> DATE_PURGE_B
    date --date "${DUREE_CONS_O} months ago" >> DATE_PURGE_O

    Il n'y a rien dans chaque DATE_PURGE_*

    La nuit portant conseil j'ai lancé la commande date --date sans la redirection, et cela fonctionne bien, j'ai bien [date du jour - 36 mois], soit le 9 juin 2012

    Donc en fait c'est ma redirection qui ne fonctionne pas. Je ne maîtrise pas bien le sujet. Comment je peux mettre le résultat de ma commande dans une variable ?

    Merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Et en cherchant on trouve :-)

    Code shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $DATE_PURGE_A=$(date --date "${DUREE_CONS_A} months ago")

    Me reste plus qu'à formater ma date.
    Merci

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Aïe!
    $var sert à accéder à la RValue de ta variable pour utilisation.
    var sert à accéder à la LValue de ta variable pour affectation.
    Ici, tu veux affecter une valeur à ta RValue. Pas cool

    Enlève le dollar avant DATE_PURGE_A.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par Cyann31 Voir le message
    Il n'y a rien dans chaque DATE_PURGE_*
    Hmmm, et qu'affiche la commande :

    ?
    ɹǝsn *sıɹɐlos*

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

Discussions similaires

  1. [JDBC] manipulation des dates
    Par zais_ethael dans le forum JDBC
    Réponses: 3
    Dernier message: 11/12/2005, 19h55
  2. [JDBC] manipulation des dates/heures en Java
    Par kurkLord dans le forum JDBC
    Réponses: 6
    Dernier message: 09/08/2004, 12h49
  3. Manipulations des Dates
    Par kurtc dans le forum Langage SQL
    Réponses: 11
    Dernier message: 13/04/2004, 14h39
  4. [IB6][BCB5]Manipulation des dates.
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 09/04/2004, 15h33
  5. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46

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