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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.