Poderse hacer en una consulta... se puede. Pero es una consulta algo compleja porque primero hay que determinar los parámetros de hora de inicio y hora final, y luego calcular los segmentos diurnos y nocturnos.
Ese tipo de consultas es conveniente resolverlas en procedimientos almacenados (stored procedures).
¿Realmente la necesitas hacer?
La cosa anda más o menos por acá (no la he revisado muy bien):