Em vez de substr , você precisa usar extract ou date_part com o registro de data e hora e o nome do campo a ser extraído, como 'hora' ou 'dia'.
Não é necessário chamar to_number nos resultados, pois essas funções produzem números, não seqüências de caracteres.
Veja o documento em link
