Cita: ....
el campo solo guarda la hora en formato 24 hrs. de la forma HH:MM:SS
....
and DATEDIFF (DAY, fecha_accion, getdate()) = 0
....
Guardas o no guardas la fecha de la acción...
Lo logico seria guardarla y lo mas logico guardar fecha y hora en el mismo campo, asi solo con una comparacion tendrias bastante.
Si los guardas por separado, como parece, yo intentaria construir un objeto datetime con los dos campos (no tengo la sintaxis aqui pero en la ayuda del motor de bases de datos que estes usando seguro que esta) y compararia el resultado con date().
En cualquier caso te tendria que quedar algo asi:
where DATEDIFF (minute,
date_time_accion, getdate()) > 56982299 and estado='online';
Donde
date_time_accion lo sutituyes por la funcion que concatena time_accion con fecha_accion.
Quim