Eliminar la hora a una fecha en SQL Server 2005


Hay veces que pese a recibir un parámetro en formato fecha que almacene dia y hora, nos interese únicamente almacenar (o recuperar) la parte correspondiente a la fecha.
Aquellos que hayan realizado alguna vez comparaciones de fechas situadas en un intervalo probablemente sepan de qué hablo: ¿Comparar entre un día a las 00:00:00 y el siguiente a las 00:00:00? ¿Entre el mismo día entre las 00:00:00 y las 23:59:59?

Una forma simple de ahorrarnos dolores de cabeza sería almacenar la fecha sin hora. Para ello haremos uso de los distintos formatos de fecha que nos permite promocionar SQL Server y escribiríamos algo así:

 UPDATE NombreTabla SET CampoFecha = convert(datetime, convert(varchar(10), CampoFecha, 103))  

Con lo cual, almacenaremos nuestra fecha en formato DD:MM:AAAA 00:00:00.

Anuncios

7 comments

  1. Te falto algo, el codigo bueno es asi.

    UPDATE NombreTabla SET CampoFecha = convert(datetime, convert(varchar(10), CampoFecha , 103), 103)

  2. Ambos códigos son igualmente funcionales. Se trata de un casting de un casting, en el que se convierte una fecha en una cadena con formato dd-mm-aaaa para posteriormente volver a convertir la fecha.

    Con especificar el formato una única vez es suficiente, pero el código que tu indicas también tendría el mismo efecto.

    En cualquier caso, gracias por el apunte 🙂

  3. Hola, Erica.

    Puedes intentar crear en tu tabla un campo NVARCHAR(8) (si únicamente quieres guardar hh:mm:ss) y guardar la hora de la siguiente manera:

    INSERT INTO MiTabla(MiCampoNVarchar) VALUES (CAST(DATEPART(hh, GETDATE()) AS NVARCHAR(2)) + ‘:’ + CAST(DATEPART(mi, GETDATE()) AS NVARCHAR(2)) + ‘:’ + CAST(DATEPART(s, GETDATE()) AS NVARCHAR(2)));

    Del mismo modo, puedes almacenar la fecha completa y recuperar únicamente la hora de una forma similar:

    select CAST(DATEPART(hh, MiCampoDateTime) AS NVARCHAR(2)) + ‘:’ + CAST(DATEPART(mi, MiCampoDateTime) as NVARCHAR(2)) + ‘:’ + CAST(DATEPART(s, MiCampoDateTime) AS NVARCHAR(2)) from MiTabla as Hora

    Espero que te sirva. Un saludo 😉

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s