Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 11h46   #1
Invité de passage
 
Inscription : janvier 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 14
Points : 3
Points : 3
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 :
WHERE TO_DATE(DAY_DATE + TIME, 'DD/MM/YYYY HH24:MI') > TO_DATE('30/05/2011 06:00', 'DD/MM/YYYY HH24:MI')
Merci
vaccary est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 11h55   #2
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Il faut que tu utilise str_to_date.
Exemple:
Code :
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
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 11h59   #3
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
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 :
1
2
 
TO_DATE(to_char(DAY_DATE,'DD/MM/YYYY')||' '||TIME, 'DD/MM/YYYY HH24:MI')
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 01/06/2011, 12h07   #4
Invité de passage
 
Inscription : janvier 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 14
Points : 3
Points : 3
Merci beaucoup pour votre aide.

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

Merci encore et bonne journée !
vaccary est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 12h09   #5
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
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!
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h32   #6
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 432
Points : 10 432
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 :
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.
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/06/2011, 16h03   #7
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 311
Points : 5 808
Points : 5 808
Code :
SELECT day_date + TO_DSINTERVAL('0 '||time||':00')
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h58.


 
 
 
 
Partenaires

Hébergement Web