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

SQL Oracle Discussion :

Comment créer une table et recupérer les dates des enregistrements?


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Points : 57
    Points
    57
    Par défaut Comment créer une table et recupérer les dates des enregistrements?
    Bonjour,

    Je voudrais créer une table simple du genre :
    -------------------------
    Person Id | Person Name |
    -------------------------
    000001 | Nicolas |
    -------------------------
    ...
    A la lecture de cette table moyennant SQL je voudrais récupérer la date de l'enregistrement afin de pouvoir le comparer par la suite par rapport à une date de référence.

    Cela est dans le but de faire un mécanisme de clearing qui permet d'effacer à la demande les enregistrement qui dates de plus d'une semaine par exemple.

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    il faut ajouter une colonne CREATION_DATE par exemple et un trigger AFTER INSERT qui met SYSDATE dedans.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Le champ à ajouter il est de quel type?
    Date oubien Char(n)

    Merci

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    tu peux prendre date, number, timestamp, char, ce que tu veux. Le plus logique pour stocker une date serait... date

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Points : 95
    Points
    95
    Par défaut date
    de type date bien sur.
    et si tu t'intéresse a la date d'insertion de l'enregistrement
    tu pourras créer une colonne qui prend par défaut la date du jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter table ma_table add date_creation date default sysdate;

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Dans mon cas je crois bien que la solution de shan08 me convient le plus.
    La date d'enregistrement est destinée a être comparée. Le but est de créer un mécanisme qui permet, à la demande, de supprimer les entrées qui datent de plus d'une semaine.

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Oui DEFAULT plutôt qu'un trigger c'est nettement plus intelligent

    Je devais être fatigué

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Les tables de la base sur laquelle je travaille en ce moment contiennent toutes 6 colonnes techniques dont une pour la date de création et une pour la date de dernière mise à jour (et 2 autres pour les user). C'est très utile.
    Mises à jour avec une valeur par défaut, un trigger est inutile.

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Moi aussi j'aime bien les colonnes d'audit

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Dans le même contexte saviez vous comment comparer deux dates ayant le format de sysdate : 27/05/2009 11:13:39

    Merci

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par GoLDoZ Voir le message
    Mises à jour avec une valeur par défaut, un trigger est inutile.
    Bien sûr la valeur par défaut ne marche que lors de la création (INSERT), pas lors de la mise-à-jour (UPDATE)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Oui, mais on peut faire ainsi lors de l'update:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE ma_table SET champa= 5555, recordDate = sysdate WHERE champb = 33333

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Bien sûr la valeur par défaut ne marche que lors de la création (INSERT), pas lors de la mise-à-jour (UPDATE)
    Bien entendu.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hamdi Hedhili Voir le message
    Dans le même contexte saviez vous comment comparer deux dates ayant le format de sysdate : 27/05/2009 11:13:39
    Merci
    Les dates n'ont pas de format, on ne le répétera jamais assez.
    Le format, c'est juste pour l'affichage.
    Et pour la comparaison, on a les classiques < ou > ou <= ou >= ou != ou =

  15. #15
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    on a les classiques < ou > ou <= ou >= ou != ou =
    sans oublier overlaps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
      FROM DUAL
     WHERE      (DATE '1111-01-01', DATE '3333-01-01') 
       overlaps (DATE '2222-01-01', DATE '4444-02-01');
    allez, c'était pour rire, overlaps n'existe que dans mon imagination ...

  16. #16
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    sans oublier overlaps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
      FROM DUAL
     WHERE      (DATE '1111-01-01', DATE '3333-01-01') 
       overlaps (DATE '2222-01-01', DATE '4444-02-01');
    allez, c'était pour rire, overlaps n'existe que dans mon imagination ...
    Salut Laurent,

    Tu ne prépare quelque chose ?
    Code : 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
     
    C:\Users\Marius>sqlplus mni/mni
     
    SQL*Plus: Release 11.1.0.6.0 - Production on Mer. Mai 27 17:25:34 2009
     
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
     
     
    ConnectÚ Ó :
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    mni@DIANA> select * from dual
      2   where          (date '2007-01-01', date '2008-01-01')
      3         overlaps (date '2005-01-01', date '2006-01-01')
      4  /
     
    aucune ligne sÚlectionnÚe
     
    mni@DIANA>

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    allez, c'était pour rire, overlaps n'existe que dans mon imagination ...
    Je ne connaissais pas, merci.
    J'étais resté dans le basique de base...

  18. #18
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Avec une requête qui renvoie quelque chose c'est aussi bien !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM dual
    WHERE      (date '2005-01-01', date '2008-01-01')
      OVERLAPS (date '2006-01-01', date '2007-01-01')

  19. #19
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    Je ne connaissais pas, merci.
    J'étais resté dans le basique de base...

    J'ai l'impression que les choses sont un peu plus compliqués parce que, sauf erreur de ma part, cette fonction n'existe pas dans la doc Oracle.
    J'ai trouve seulement un wm_overlap qui n'est pas loin mais...

  20. #20
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Ca fonctionne même en 9i !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  2. Réponses: 4
    Dernier message: 20/08/2006, 16h20
  3. [VBA-A]Comment créer une table à partir d'un recordset ?
    Par NoViceDel dans le forum VBA Access
    Réponses: 22
    Dernier message: 23/05/2006, 16h10
  4. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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