Sentencias SQL: Datetime

Repositorio de sentencias útiles para Microsoft SQL Server con la finalidad de tener un repositorio de referencia y consulta. No pretende ser una entrada de formación.

Sentencias útiles de tiempo:

  • Hoy
  • Primer día del mes anterior
  • Primer día del mes corriente
  • Primer día del mes siguiente
  • Último día del mes anterior
  • Último día del mes corriente
  • Último día del mes siguiente
  • De fecha/hora UTC a fecha/hora local
DECLARE @hoy DATETIME
SELECT @hoy = GETDATE() SELECT CONVERT(VARCHAR(25), @hoy, 103) AS Fecha, 'Hoy' AS [Descripción]
UNION
SELECT CONVERT(VARCHAR(25), DATEADD(MONTH, DATEDIFF(MONTH, 0, @hoy) - 1, 0), 103) AS Fecha, 'Primer día del mes anterior' AS [Descripción]
UNION
SELECT CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(@hoy) - 1),@hoy), 103) AS Fecha, 'Primer día del mes corriente' AS [Descripción]
UNION
SELECT CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(DATEADD(mm, 1, @hoy)) - 1), DATEADD(mm, 1, @hoy)), 103) AS Fecha, 'Primer día del mes siguiente' AS [Descripción]
UNION
SELECT CONVERT(VARCHAR(25), DATEADD(MONTH, DATEDIFF(MONTH, -1, @hoy) - 1, -1), 103) AS Fecha, 'Último día del mes anterior' AS [Descripción]
UNION
SELECT CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(DATEADD(mm, 1, @hoy))), DATEADD(mm,1,@hoy)), 103) AS Fecha, 'Último día del mes corriente' AS [Descripción]
UNION
SELECT CONVERT(varchar(25), DATEADD(dd, -(DAY(DATEADD(mm, 2, @hoy))), DATEADD(mm, 2, @hoy)), 103) AS Fecha, 'Último día del mes siguiente' AS [Descripción]
GO
 
DECLARE @utcdate DATETIME = '2019-07-14 11:11:37.127'
 
SELECT @utcdate AS UTCTime, Dateadd(hh, Datediff(hh, Getutcdate(), Getdate()), @utcdate) AS LocalDateTime;
GO