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 :

Concaténer champ date et champ time afin de filtrer


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut Concaténer champ date et champ time afin de filtrer
    Bonjour,

    Je dois filtrer une table sur la date, mais la date est repartie en 2 champs, un champ DAY_DATE au format Date et un champ TIME au format Text. Comment concaténer ces 2 champs afin de pouvoir filtrer la table comme si il s'agit d'un seul champ au format DateTime ?

    J'ai essaye ceci, avec plusieurs variantes, mais non concluant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE TO_DATE(DAY_DATE + TIME, 'DD/MM/YYYY HH24:MI') > TO_DATE('30/05/2011 06:00', 'DD/MM/YYYY HH24:MI')
    Merci

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Il faut que tu utilise str_to_date.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT STR_TO_DATE('(1-8-2008 - 16.24)', '(%e-%c-%Y - %H.%i)') AS NewDateTime;
    Donc je dirais que tu dois concatener ta chaine de caractère (time) avec l'année le mois et le jour 0 pour ensuite utiliser str_to_date dessus puis l'additionner avec ta date

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Si c'est bien du oracle il y a déjà l'heure dans DAY_DATE mais peut être pas la bonne heure, si TIME est bien écrit au format HH24:MI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TO_DATE(to_char(DAY_DATE,'DD/MM/YYYY')||' '||TIME, 'DD/MM/YYYY HH24:MI')

  4. #4
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut
    Merci beaucoup pour votre aide.

    J'ai utilisé la solution de skuatamad, qui fonctionne très bien !

    Merci encore et bonne journée !

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Oui c'est vrai quel est plus simple

    Sinon je ne sais pas si ca peut marcher (à tester), tu peux utiliser la fonction CONCAT directement!

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Citation Envoyé par David55 Voir le message
    Oui c'est vrai quel est plus simple
    Elle n'est pas seulement plus simple, elle est surtout juste !
    STR_TO_DATE n'est pas une fonction Oracle Database.

    Une autre solution qui évite de passer par une conversion en char :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select day_date + (to_date(time, 'hh24:mi') - trunc(sysdate))
    Ça pourrait peut-être provoquer quelques erreurs d'arrondi cela dit, il faudrait s'en assurer.

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

Discussions similaires

  1. [XL-2013] Fusion champ texte et champ date
    Par Seyar dans le forum Excel
    Réponses: 2
    Dernier message: 18/10/2014, 18h39
  2. Comment puis-je convertir champ smallint au champ date
    Par medreg dans le forum Bases de données
    Réponses: 28
    Dernier message: 17/01/2012, 10h32
  3. [WD15] Champ Calendrier et champ Date
    Par Pandev31000 dans le forum WinDev
    Réponses: 4
    Dernier message: 14/11/2011, 20h10
  4. Mapping Hibernate Date avec champ date Oracle 10g
    Par tdeco dans le forum Hibernate
    Réponses: 0
    Dernier message: 25/01/2011, 10h28
  5. Réponses: 2
    Dernier message: 21/08/2008, 12h46

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