26 de noviembre de 2009

SQL Serever: Obtener fechas

El trabajar con fechas, siempre ha sido un dolor de cabeza. Dejo aqui algunas funciones con las cosas básicas:

El primer día del mes

SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

El último día del mes
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate()  )+1, 0))

El Lunes de la semana actual
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

Primer dia del año
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

Ultimo dia del mes anterior
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()  ), 0))

Ultimo dia del año anterior:
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate() ), 0))

Primer lunes del mes
SELECT DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)


Primer domingo del mes
SELECT DATEADD(wk, DATEDIFF(wk,6,DATEADD(dd,6-DATEPART(DAY,GETDATE()),GETDATE())), 6)

Último domingo del mes
SELECT DATEADD(wk, DATEDIFF(wk,6,DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,GETDATE()) 1, 0))), 6)


2 comentarios:

  1. hola, ojala puedas ayudarme, necesito obtener datos de 1 año considerando la fecha actual.

    ResponderEliminar
  2. Hola Espero y me puedas ayudar me sale esto en al obtener el ultimo domingo del mes

    Incorrect syntax near '1'.

    Espero y no sea mucha molestia-- un gran saludo..

    ResponderEliminar