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.
Significado | Abreviatura |
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