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 :

Déclaration colonne de type horaire et année uniquement


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Déclaration colonne de type horaire et année uniquement
    Bonjour,

    Cherchant désespérément sur internet comment déclarer un type heure de format HH:MM:SS pour une colonne dans une table sur SQLdeveloper Oracle, j'aimerai par conséquent connaitre la syntaxe permettant de le faire. En effet j'ai essaye HOUR, TIME, DATETIME,.... Aucun ne marche sauf pour TIMESTAMP mais je n'ai rien compris à son fonctionnement (et en plus je veux uniquement le format HH:MM:SS)

    Voici la table que je suis entrain de créer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE VOL
    (
      Heure_dep INT CHECK (Heure_dep BETWEEN 00 AND 23) NOT NULL,
      Heure_arriv INT CHECK (Heure_arriv BETWEEN 00 AND 23) NOT NULL,
    ....
    );
    Pour le moment j'ai fait un check de minuit à 23 heures pour Heure_dep et Heure_arriv sur un entier, mais j'aimerai les déclarer en heures pour faire plus propre.

    Par ailleurs dans une autre table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE AVION
    (
      Annee_circul INT CHECK (Annee_circul>1900),
      Nbr_heure INT DEFAULT 0 CHECK (Nbr_heure>=0)
    ....
    );
    j'aimerai déclarer Annee_circul en YEAR au format YYYY avec la condition supérieur à 1900 mais cela ne fonctionne pas non plus sur Oracle.
    Et en même temps Nbr_heure format HH uniquement (sinon ce n'est pas grave pour celle-ci)

    Comment faire ??

    Et ensuite comment intégrer des tuples dans ces formats avec des exemples pour que je saisisse bien la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO VOL VALUES ('12:30:30') par exemple, INSERT INTO AVION VALUES ('2016','2600'), etc
    Merci d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    D'après ce que j'ai lu ce n'est pas possible d'avoir une colonne juste de type 'DD:MI:SS'.
    En revanche, tu peux faire ça : créer une table de format DATE et créer une colonne virtuelle qui extrait juste l'heure de cette date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> create table t1 (flight_date date, flight_time as (to_char(flight_date,'HH24:SS:MI')));
    Table created.
     
    SQL> desc t1
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     FLIGHT_DATE                                        DATE
     FLIGHT_TIME                                        VARCHAR2(75)

    Insertion de valeurs avec heures et sans.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> insert into t1 (FLIGHT_DATE) values ('01:01:2017'); -- Pas d'heures
    1 row created.
     
    SQL> insert into t1 (FLIGHT_DATE) values (to_date('1998/05/31:12:11:10', 'yyyy/mm/dd:hh:mi:ss')); -- Avec heure
    1 row created.
     
    SQL> select * from t1;
    FLIGHT_D FLIGHT_TIME
    -------- -------------------
    01/01/17 00:00:00
    31/05/98 12:10:11
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

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

Discussions similaires

  1. [JTable] Colonnes de types différents
    Par gondek dans le forum Composants
    Réponses: 3
    Dernier message: 20/10/2005, 00h07
  2. Réponses: 5
    Dernier message: 19/04/2005, 09h46
  3. colonnes de type auto incremental
    Par Bill_Baroud dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/12/2004, 12h28
  4. requete vers une colonne de type datetime
    Par Zorgz dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2003, 12h37

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