Hola.
Puedes usar una UDF (funciones adicionales disponibles en librerias .dll). Por ejplo, Firebird viene con la fbudf.dll, que incorpora funciones que te pueden ser utiles, como por ejeplo. AddHour, AddMinute, AddSecond. Mira el archivo fbudf.sql en la carpeta /udf de Firebird, para ver las funciones que incorpora, y su declaración.
Estas funciones, junto con la estándar
extract que soporta directamente el motor, te permitirán hacer lo que deseas. Ejplo. extract(hour from data) te devuelve un entero con la hora.
NOTA: Si no usas Firebird, puedes usar una de las que encontrarás en esta Web
http://www.cvalde.net/misc/packages_and_utilities.htm
Saludos.