Prácticas funciones de manejo de fechas en SQL Server

Logo SQL ServerMuchos de nosotros durante el ejercicio de nuestra querida profesión, nos habremos encontrado gestionando bases de datos SQL con el sistema SQL Server de Microsoft.

Siendo uno de los sistemas de bases de datos mas ampliamente usados, en sus ultimas versiones carece de funciones que simplifiquen el acceso a tipos de datos específicos.

Hoy por ejemplo, me gustaria centrarme en funciones que nos facilitan el manejo del tipo de datos DATETIME.

Para tener acceso a la funcionalidad propuesta deberemos ejecutar el siguiente código SQL dentro de la base de datos que queramos que adquiera estas funciones.

Devolver un tipo de datos DATETIME formado por el año, mes y dia pasados por parámetro:

  1. CREATE FUNCTION [dbo].[Date](@Year int, @Month int, @Day int)
  2. returns datetime
  3. as
  4. begin
  5. return dateadd(day, @Day-1, dateadd(month, @Month-1, dateadd(year, (@Year-1900),0)))
  6. end
  7. go
  8.  

Eliminar la hora de la fecha @DateTime y la devuelve solo con la fecha:

  1. CREATE FUNCTION [dbo].[DateOnly](@DateTime DateTime)
  2. returns datetime
  3. as
  4. begin
  5. return dateadd(dd,0, datediff(dd,0,@DateTime))
  6. end
  7. go

Devolver un DATETIME completo, incluyendo la hora, minuto y segundo pasados por parametro:

  1. CREATE FUNCTION [dbo].[DateTime](@Year int, @Month int, @Day int, @Hour int, @Minute int, @Second int)
  2. returns datetime
  3. as
  4. begin
  5. return dbo.Date(@Year,@Month,@Day) + dbo.Time(@Hour, @Minute,@Second)
  6. end
  7. go

Devolver un DATETIME con la Hora, Minuto y Segundo pasados por parámetro, tomando como Fecha Base el dia (1/1/1900):

  1. CREATE FUNCTION [dbo].[Time](@Hour int, @Minute int, @Second int)
  2. returns datetime
  3. as
  4. begin
  5. return dateadd(hour, @Hour, 0) + dateadd(minute, @Minute,0) + dateAdd(second, @Second,0)
  6. end
  7. go

Devolver solamente la parte Hora,Minuto y Segundo de la fecha pasada por parámetro, tomando como base la fecha (1/1/1900):

  1. CREATE FUNCTION [dbo].[TimeOnly](@DateTime DateTime)
  2. returns datetime
  3. as
  4. begin
  5. return @DateTime - dbo.DateOnly(@DateTime)
  6. end
  7. go

4 Respuestas a “Prácticas funciones de manejo de fechas en SQL Server”


  1. 1 danny

    me parece muy interesante el problema es que soy novato y no se en que parte debo poner esta funcion o donde tengo que llamarala para que fncionen ayudenme si gracias

  2. 2 David García

    Estos scripts los has de ejecutar en la base de datos que utilices, o bien, si tienes acceso a la “master”.

    Una vez ejecutados los scripts ya podrás utilizar las funciones llamandolas así, por ejemplo:

    SELECT dbo.Date( 2008, 3, 9 )

  3. 3 principiante

    apenas empiezo al involucrarme a esto pero necesito que alguien me recomiende un libro o una pagina web para buscar

    gracias

  4. 4 caterin

    no entendi nada

  1. 1 XperimentoS » Archivo del Blog » Funciones básicas para el manejo de fechas en SQL Server
    Dirección Pingback a 21 Feb., 2008, 11:30

Añade un Comentario