Problème de comparaison date et heure système dans clause where
Je cherche à récupérer certains enregistrements en fonctions de l'heure système.
Si il est avant 13h00, je récupère les enregistrements créés avant 5h00 sinon je récupère les enregistrements créés avant 13h00.
Dans la table, j'ai un champ time et un champ date. Je ne dois pas faire la seule comparaison sur la base de l'heure. J'ai codé ceci mais ma condition ne fonctionne pas dans la clause where.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SELECT wo.num_wo,
wi.num_wo_instruction AS num_bon,
r.name AS operateur,
d.name AS departement,
to_char(w.in_date,'DD/MM/YYYY') || ' '|| TO_CHAR(w.in_time, 'HH24:MI:SS') AS date_badgage,
r2.name AS poste
FROM topmes.wip_pointing w
INNER JOIN topmes.wo_instruction wi
ON w.id_wo_instruction = wi.id_wo_instruction
INNER JOIN toppdm.resources r
ON w.id_labor_resource = r.id_resource
INNER JOIN toppdm.resource_tree_item rt
ON r.id_resource = rt.id_resource
INNER JOIN topsys.department d
ON rt.id_parent_origin = d.id_department
LEFT OUTER JOIN toppdm.resources r2
ON w.id_mach_resource = r2.id_resource
INNER JOIN topmes.wo wo
ON wi.id_wo = wo.id_wo
WHERE (to_char(w.in_date,'YYYYMMDD') || to_char(w.in_time,'HH24:MI:SS')) < (if TO_CHAR(SYSDATE, 'HH24:MI:SS') > '13:00:00' then (to_char(sysdate,'YYYYMMDD') || '13:00:00') else (to_char(sysdate,'YYYYMMDD') || '05:00:00') end) |
Code:
1 2 3 4 5
| ORA-00920: opérateur relationnel non valide
00920. 00000 - "invalid relational operator"
*Cause:
*Action:
Erreur à la ligne 22, colonne 83 |
Je ne sais pas comment faire.