Funciones de fecha y Hora

Funciones de fecha y hora en SQL Server

Permiten el manejo de datos tipo fecha y hora.

Fecha y Hora del sistema
SYSDATETIME — Fecha y Hora del Servidor
GETDATE — Obtiene la fecha del Servidor

Para el manejo de una fecha en partes
DateName — Nombre de parte de la fecha determinada
DataPart — Parte de la fecha
Day — El número de día del mes
Month — El número del mes
Year — El año de una fecha

Añadir y obtener lapsos entre fechas.
DateDiff — Diferencia entre dos fechas
DATEADD — Añade partes de fecha a una fecha determinada

Obtener si el dato es fecha o no
IsDate — Verdadero si es dato es de tipo fecha

Partes de fecha

Las partes de la fecha son abreviaturas que permiten especificar que parte de la fecha u hora se desea trabajar u obtener.

SignificadoAbreviatura
year  yy , yyyy
quarter  qq , q
month  mm , m
dayofyear  dy , y
day  dd , d
week  wk , ww
weekday  dw
hour  hh
minute  mi, n
second  ss , s

Ejemplos

Mostrar la fecha y hora del sistema
select getdate() As ‘Fecha Actual’, SYSDATETIME() As ‘Fecha Sistema’
go

Mostrar el Año, nombre del mes y nombre del día
select DATENAME(yy,Getdate()) As Año ,DATENAME(mm,Getdate()) As Mes,DATENAME(dw,Getdate()) As Día
go

Mostrar el día del mes y día del año (hasta 365)
select DATENAME(dd,Getdate()) As ‘Día del mes’, DATENAME(dy,Getdate()) As ‘Día del año’
go

Mostrar la semana del año (De 1 a 52) y número de día de la semana
select DATEPART(wk,’16/11/1996′) As Semana, DATEPART(dw,’01/10/2000′) As Día
go

Usando Northwind

use Northwind
go
Órdenes del año 1998
select * from Orders where year(OrderDate) = 1998
go

Órdenes de Abril, Mayo y Junio de 1997
select * from Orders where MONTH(OrderDate) in (4,5,6) and year(Orderdate) = 1997
go

Listado de las órdenes, su ID o número, la fecha de la orden, la fecha de atención y la cantidad de días en que fue atendida.
select OrderID, Format(OrderDate,’dd/MM/yy’) As ‘Fecha Emisión’,
Format(ShippedDate,’dd/MM/yy’) As ‘Fecha de Atención’ ,
Datediff(d,OrderDate, ShippedDate) As ‘Días en Atender’
from Orders
go

Agregando 60 días a la fecha actual
select dateadd(d,60,GetDate())
go