Concatener champ date et champ time pour filtrer [Résolu] [Oracle] - SQL/NoSQL - Programmation
Marsh Posté le 26-05-2011 à 16:19:04
La concaténation se fait avec deux barres verticales ||
Essayer de faire une conversion vers une chaine de caractère avec to_char(), et comparer les chaines, ou bien convertir vers une date avec to_date() et comparer les dates.
Par exemple :
Select ... |
Marsh Posté le 26-05-2011 à 17:19:06
Merci beaucoup pour votre aide.
Je n'ai pas le temps de tester aujourd'hui, je le ferais demain sans faute
Bonne soiree
Marsh Posté le 26-05-2011 à 17:39:46
Dans Oracle, le type DATE peut aller jusqu'à la précision seconde : tu as de ce fait la possibilité de faire des comparaisons avec date et heure jusqu'à la seconde. Si tu veux aller en dessous de la seconde il faut utiliser le type TIMESTAMP
Concernant les comparaisons, il est très fortement conseillé de manipuler au format DATE et pas au format VARCHAR2 pour des raisons de rapidité
Du coup si tu veux comparer il est préférable de convertir ton heure au format DATE et de l'additionner avec ton champs qui contient la date
incide : utilise TO_DATE() et l'addition '+'
Marsh Posté le 01-06-2011 à 09:48:29
Bonjour,
Je ne vois pas comment mettre mon filtre dans la clause WHERE.
Est ce que c'est du genre :
WHERE DAY_DATE + TO_DATE(TIME_DATE, 'HH24:MI') > '31/05/2011 16:00'
J'ai essaye mais ca ne fonctionne pas, comment faut il faire ?
Merci
Marsh Posté le 01-06-2011 à 09:54:14
pour comparer des dates il faut que toutes les données soient en date
convertir au format date ta chaîne '31/05/2011 16:00'
Marsh Posté le 01-06-2011 à 10:23:29
Alors je viens d'essayer en convertissant la seconde date, ca ne fonctionnait pas, j'ai donc essaye ceci :
TO_DATE(DAY_DATE + TIME, 'DD/MM/YYYY HH24:MI') > TO_DATE('31/05/2011 06:00', 'DD/MM/YYYY HH24:MI')
Idem, voici l'erreur renvoye par Flex : [RPC Fault faultString="ociexecute(): ORA-01722: invalid number" faultCode="AMFPHP_RUNTIME_ERROR"
Marsh Posté le 01-06-2011 à 12:10:08
Pour info, voici la solution :
TO_DATE(to_char(DAY_DATE,'DD/MM/YYYY')||' '||TIME, 'DD/MM/YYYY HH24:MI')
Marsh Posté le 26-05-2011 à 11:00:00
Bonjour,
J'ai une table avec un champ "DAY_DATE" (format "DATE" ) et un champ "TIME" (format "TEXT" ). Il faudrait que je puisse faire des requetes sur cette table comme si mes 2 champs n'etaient qu'un seul champ au format "DATETIME". Le probleme est que je ne suis pas du tout specialiste des bases de donnees et encore moins sur Oracle.
Comment faire pour concatener ces 2 champs, tout en modifiant le format du champ "TIME" ?
Bonne journee,
Merci
Message édité par shooker le 01-06-2011 à 12:10:54