FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Restar horas en SQL/PLUS de ORACLE
En la SQL que hago todo lo referente a formato de fechas y demas esta todo controlado, pero cuando intento restar las horas y minutos no hay forma de poder hacerlo.
select to_char(MIN(fecha),'HH24:MI') Hori, to_char(MAX(fecha),'HH24:MI') Horf, to_char(MAX(a.fei),'HH24')-to_char(MIN(a.fei),'HH24') DifHor from ... He jugado con number, decode y todo lo que se me ha ocurrido. Ahora estoy jugando con el QReport, a ver si por programación logro lo que busco. Pero lo de la SQL me ha dejado con ganas de consegirlo, directamente por SQL. Saludos. |
#2
|
||||
|
||||
No entiendo qué es exactamente lo que quieres hacer... ¿quieres la diferencia de dias?¿de horas?
__________________
E pur si muove |
#3
|
||||
|
||||
Lo que deseo sacar es el tiempo transcurrido desde una fecha a otra en horas y minutos.
Gracias. |
#4
|
||||
|
||||
y porque no haces simplemente
Código:
Select max(fecha), min(fecha), (max(fecha) - min(fecha)) * 24 Horas from tutabla where tuscondiciones; Vas a obtener un número donde 1.5, representa 1:30 Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
Lo primero gagradecer a marto y a jachguate, sus respuestas al mensaje original.
Pero todabia no he logrado conseguir lo que quiero. He realizado las pruebas tal como me aconsejo jachguate, pero tal como les pongo a continuación, no me cuadra el tiempo conseguido. Por ejemplo: fecha inicio fecha final Resultado 06/08/2003 06:30:34 06/08/2003 11:03:15 4,5447 06/08/2003 10:57:00 06/08/2003 16:00:00 5,05 06/08/2003 04:43:29 06/08/2003 08:09:50 3,4391 El primero realmente son 04:32. El segundo son 05:03, pase porque puede ser un redondeo. El tercero son 03:26. En QR. he realizado las pruebas pertientes con el evaluador de expresiones y no consigo que me ponga el tiempo transcurridoen condiciones. Saludos. |
#6
|
||||
|
||||
es justamente lo que te está devolviendo la consulta... en decimal.
Luego, vos podes formatearlo en un campo calculado, no??? 06/08/2003 06:30:34 06/08/2003 11:03:15 4,5447 El primero realmente son 04:32. 0.5447 * 60 = 0:32:41 + 4 = 4:32:41 hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
Muchisimas gracias, las ideas proporcionadas por jachguate me han orientado bastante.
Aquí les envio la SQL final, tal como yo queria al QR. llegan los datos limpios, solo hay que imprimirlos. SQL: select MIN(fecha),MAX(fecha), floor((MAX(fecha)-MIN(fecha))*24)||':'|| round((((MAX(fecha)-MIN(fecha))*24)-(floor((MAX(fecha)-MIN(fecha))*24)))*60,0) Tiempo from tabla(s) where condiciones and mas condiciones etc. Repito las gracias y les envio un saludo. |
|
|
|