USO DE CASE WHEN EN ORACLE

tema enviado por JCGZ en ORACLE
tema iniciado el 30/08/2009

Hola, necesito extraer datos de una tabla x pero quiero validar en el where la hora de ejecucion de la consulta y dependiendo de esto cambiar el parametro en la sentencia where adjunto la consulta

select
    V_HEALTH_EVENT.MACHINECLASS_N as "Machine Class",
    V_HEALTH_EVENT.MACHINE_N as "Machine Name",
    'Abusive Shift' as DESCRIPTION,
    COUNT(*) as "Event Count"
from
    V_HEALTH_EVENT,
    V_DUAL
where
    V_HEALTH_EVENT.EVENTNUMBER = '3007' and
    V_HEALTH_EVENT.OBJECTTYPEID = 'Deactivate' and
V_HEALTH_EVENT.TIMESTAMP Between ((trunc(sysdate)) + 1/24*8) and ((trunc(sysdate)) + 1/24*20)
group by
    MACHINECLASS_N,
     MACHINE_N

quiero validar de una manera que si son estmamos entre las 8 de la mañana y las 8 de la noche el campo V_HEALTH_EVENT.TIMESTAMP se encuentre entre las 8 de la mañana y las 8 de la noche (asi esta ahora), pero cuando sea las 8 de la noche, debera mostrarme los datos de las 8 de la noche en adelante, el problema se agranda cuando estamos en una hora pasada la media noche, el valor de V_HEALTH_EVENT.TIMESTAMP debera estar entre las 8 de la noche del dia anterior y las 8 de la mañana de ese dia, estube pensando en usar el case when de la siguiente manera, pero me sale un erro de missing keyword

select
    V_HEALTH_EVENT.MACHINECLASS_N as "Machine Class",
    V_HEALTH_EVENT.MACHINE_N as "Machine Name",
    'Abusive Shift' as DESCRIPTION,
    COUNT(*) as "Event Count"
from
    V_HEALTH_EVENT,
    V_DUAL
where
    V_HEALTH_EVENT.EVENTNUMBER = '3007' and
    V_HEALTH_EVENT.OBJECTTYPEID = 'Deactivate' and
case when (trunc(sysdate))>= ((trunc(sysdate)) + 1/24*8) then V_HEALTH_EVENT.TIMESTAMP Between ((trunc(sysdate)) + 1/24*8) and ((trunc(sysdate)) + 1/24*20)end,
group by
    MACHINECLASS_N,
     MACHINE_N

por favor alguna idea sera muy agradecida

saludos