Obtener solo la fecha en una consulta de SQL

En SQL server, no hay una manera directa de obtener solo la parte de fecha de un campo “DateTime” y no existe unicamente un tipo de campo “Date”. Por lo tanto, si queremos obtener en una consulta, por ejemplo, los registros del dia de hoy, la siguiente consulta no funcionaria:

 select * from tabla where fecha = GetDate()

Esto se debe a que GetDate() nos regresa la fecha y hora en que se ejecuta la consulta, no solo la fecha.

Para hacer posible esta comparacion, podriamos hacer que todas los DateTime se refirieran a las 0:00:00 del dia en cuestion, convirtiendo la fecha a Float y luego usando la funcion Floor de la siguiente manera:

 Cast(Floor(Cast(fecha as Float))as DateTime)

De esta manera, primero convertimos la fecha, y con floor le quitamos todos los minutos y horas “sobrantes”. Despues convertimos de nuevo a DateTime, lo que nos regresara la fecha, con la hora 0. Para poder hacer la comparacion habria que convertir de la misma manera la funcion GetDate().

One Response to “Obtener solo la fecha en una consulta de SQL”

  1. Edgarin Says:

    Excellent! efficient and very helpful
    Thanks.

Leave a Reply