Oracle - como comparar horas y minutos en oracle

 
Vista:

como comparar horas y minutos en oracle

Publicado por juankprogramador (3 intervenciones) el 20/11/2017 03:44:38
Necesito comparar dos horas con segundos y no hay forma de hacerlo siempre me devuelve que la tabla no tiene ese dato y no es asi he tratado en varias formas quien me ayude seria un genio

Estas son las formas de las cual he tratado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
select fechahorapeticion
from ucm_t.peticiones
where to_char(to_date(FechaHoraPeticion, 'DD-MM-YYYY hh24:mi:ss'),'DD-MM-YYYY hh24:mi:ss')=to_char(to_date('01-07-07 08:00:00', 'DD-MM-YYYY hh24:mi:ss'),'DD-MM-YYYY hh24:mi:ss');
 
 
create or replace
PROCEDURE pr_probar4
 
as
 
FechaInicio date;
fechaiguales date;
codigopaciente number;
 
begin
 
FechaInicio:=TO_DATE('01/07/07 08:00', 'dd-mm-yyyy hh24:mi');
codigopaciente:= 10;
 
select fechahorapeticion into fechaiguales
       from ucm_t.peticiones
        where FechaHoraPeticion=FechaInicio;
 
EXCEPTION WHEN NO_DATA_FOUND THEN
FechaInicio:=TO_DATE('05/07/07', 'dd/mm/yyyy');
 
 
 
commit;
 
end;


y me devuelve null
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

como comparar horas y minutos en oracle

Publicado por Rafael (328 intervenciones) el 20/11/2017 16:41:09
A ver esto es solo falta de atencion del tamaño de una casa...

Tu condicion

1
where to_char(to_date(FechaHoraPeticion, 'DD-MM-YYYY hh24:mi:ss'),'DD-MM-YYYY hh24:mi:ss')=to_char(to_date('01-07-07 08:00:00', 'DD-MM-YYYY hh24:mi:ss'),'DD-MM-YYYY hh24:mi:ss');

La analizo por partes ... supongo que el campo es un varchar ...
Si es un campo fecha pues ya empieza ahi el error...

Luego transformas a fecha y despues a CHAR ,... para comparar una transformacion a fecha + char, por que no fecha con fecha???

Por ultimo no se si no te das cuenta pero cuando pasas la fecha en texto pones
'01-07-07 08:00:00'

lo que a legus es un formato
'DD-MM-YY hh24:mi:ss

OJO Que pones SOLO DOS DIGITOS DEL AÑO y le dices que le das 4 !!!!!

Bueno entonces supondre 1 que el campo es FECHA, 2 que el año es 2007 y quedaria ASI ...
1
where FechaHoraPeticion=to_date('01-07-2007 08:00:00', 'DD-MM-YYYY hh24:mi:ss');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como comparar horas y minutos en oracle

Publicado por juankprogramador.cr.1997 (3 intervenciones) el 20/11/2017 17:16:33
Ayer solucione mi problema, lo que necesitaba era comparar dos fechas pero al poner "fecha1 = fecha2" no daban que eran iguale siendo dos fechas con la misma fecha y con la misma hora no se por que pasaba eso por eso trate en to_char tratando de compararlo por char pero de igual modo al poner este formato completo '01-07-07 08:00:00' no queria leerlo solo si ponia '01-07-07' entonces se me ocurrio la idea de hacerlo por partes de la manera siguiente y ha funcionado:

create or replace
PROCEDURE pr_probar4

as

FechaInicio date;
fechaiguales date;
codigopaciente number;

begin

FechaInicio:=TO_DATE('01/07/07 08:00', 'dd-mm-yyyy hh24:mi');
codigopaciente:= 10;

select to_char(fechahorapeticion,'dd-mm-yyyy hh24:mi') into fechaiguales
from ucm_t.peticiones
where to_char(FechaHoraPeticion,'hh24:mi')=to_char(FechaInicio,'hh24:mi') and to_char(FechaHoraPeticion, 'dd-mm-yyyy')=FechaHoraPeticion and idpaciente= codigopaciente;

EXCEPTION WHEN NO_DATA_FOUND THEN
FechaInicio:=TO_DATE('05/07/07', 'dd/mm/yyyy');-- esto era solo para al debugear saber si entraba en exception


commit;

end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

como comparar horas y minutos en oracle

Publicado por Rafael (328 intervenciones) el 20/11/2017 17:36:07
Te insisto !!!!

NO ES CORRECTO esto
FechaInicio:=TO_DATE('01/07/07 08:00', 'dd-mm-yyyy hh24:mi');

Te faltan digitos en el año...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como comparar horas y minutos en oracle

Publicado por juankprogramador.cr.1997 (3 intervenciones) el 20/11/2017 17:39:04
si hay que poner los cuatro dígitos ahí me comí eso, un select normal quedaría así sin procedure:

select to_char(fechahorapeticion,'dd-mm-yyyy hh24:mi'), idpaciente
from ucm_t.peticiones
where to_char(FechaHoraPeticion,'hh24:mi')='08:00' and to_char(FechaHoraPeticion, 'dd-mm-yyyy')='01-07-2011';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar