Trabajar con fechas en SQL Server es algo imprescindible en bases de datos y SQL, por suerte en SQL Server tenemos multitud de funciones para acceder y manipularlas. Vamos a dar un breve repaso sobre las más habituales y tenerlo a modo de cheatsheet.
1. GETDATE () – La función más utilizada y esencial trabajando con fechas en SQL Server
Ejemplo – Obtener la fecha y hora actual
SELECT GETDATE() -> 2012-11-21 10:55:25.132.
2. DATEADD (datepart, number, date) – Nos permite añadir o quitar valor a una fecha.
Ejemplo – Añadir 30 días a la fecha actual
SELECT DATEADD(DAY, 30, GETDATE()) -> 2012-12-21 10:55:25.132.
3. DATEDIFF (datepart, startdate, enddate) – Devuelve el numero de días entre dos fechas.
Ejemplo – Días entre hoy y el 1 de enero de 2012
SELECT DATEDIFF(DAY, '01/01/2012', GETDATE())
4. DATEPART (datepart, date) – Devuelve el número que representa una porción de una fecha. Extra todas las partes de la fecha años(YEAR), meses(MONTH), dias(DAY), horas (HOUR), minutos(MINUTE), segundos(SECOND) y milisegundos(MILLISECOND).
Ejemplo – Devuelve el mes de la fecha actual
SELECT DATEPART(MONTH, GETDATE())
5. DATENAME (datepart, date) – Devuelve el nombre de una parte de la fecha.
Ejemplo – Recuperamos el nombre del mes de la fecha actual.
SELECT DATENAME(MONTH, GETDATE())
6. ISDATE (expression) – Esta función comprueba si una fecha es válida devolviendo 1 (true) o es inválida devolviendo 0 (false).
Ejemplo – Este ejemplo devolvería un 0 (false)
SELECT ISDATE ('03/34/12')
7. DAY(date), MONTH(date), YEAR(date) – Estas funciones son similares a DATEPART pero más fáciles para trabajar con ellas.
Ejemplo – Recuperamos un entero representando las fechas dadas. En este caso 1,1,1900
SELECT MONTH(0), DAY(0), YEAR(0)