update seleccionar operaciones mayor hora formato fechas fecha con comparar comparaciĆ³n sql oracle date

sql - operaciones - Seleccionar de la tabla conociendo solo la fecha sin tiempo(ORACLE)



update fecha y hora en sql (6)

Pruebe de la siguiente manera.

Select * from t1 where date(col_name)="8/3/2010"

Estoy intentando recuperar registros de la tabla sabiendo que la fecha en la columna contiene la fecha y la hora.

Supongamos que tengo una tabla llamada t1 que contiene solo dos name columna y date respectivamente.

Los datos almacenados en la columna datan así 8/3/2010 12:34:20 PM .

Deseo recuperar este registro mediante esta consulta, por ejemplo (nota que no pongo la hora):

Select * From t1 Where date="8/3/2010"

Esta consulta no me da nada!

¿Cómo puedo recuperar la date conociendo solo la date sin el tiempo?


Convierta su columna de fecha al formato correcto y compare:

SELECT * From my_table WHERE to_char(my_table.my_date_col,''MM/dd/yyyy'') = ''8/3/2010''

Esta parte

to_char(my_table.my_date_col,''MM/dd/yyyy'')

Causará cadena ''8/3/2010''


Personalmente, suelo ir con:

select * from t1 where date between trunc( :somedate ) -- 00:00:00 and trunc( :somedate ) + .99999 -- 23:59:59


Puede usar la función entre para obtener todos los registros entre 2010-08-03 00: 00: 00: 000 Y 2010-08-03 23: 59: 59: 000


DATE es una palabra reservada en Oracle, así que estoy usando column-name your_date en your_date lugar.

Si tienes un índice en your_date , yo usaría

WHERE your_date >= TO_DATE(''2010-08-03'', ''YYYY-MM-DD'') AND your_date < TO_DATE(''2010-08-04'', ''YYYY-MM-DD'')

o BETWEEN :

WHERE your_date BETWEEN TO_DATE(''2010-08-03'', ''YYYY-MM-DD'') AND TO_DATE(''2010-08-03 23:59:59'', ''YYYY-MM-DD HH24:MI:SS'')

Si no hay índice o si no hay demasiados registros

WHERE TRUNC(your_date) = TO_DATE(''2010-08-03'', ''YYYY-MM-DD'')

debería ser suficiente TRUNC sin parámetro elimina horas, minutos y segundos de una DATE .

Si el rendimiento realmente importa, considere poner un Function Based Index en esa columna:

CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));


trunc(my_date,''DD'') le dará solo la fecha y no el momento en Oracle.