27 - Funciones para el uso de fechas y horas |
Microsoft SQL Server ofrece algunas funciones para trabajar con fechas y horas. Estas son algunas:
- getdate(): retorna la fecha y hora actuales. Ejemplo:
select getdate();
- datepart(partedefecha,fecha): retorna la parte específica de una fecha, el año, trimestre, día, hora, etc.
Los valores para "partedefecha" pueden ser: year (año), quarter (cuarto), month (mes), day (dia), week (semana), hour (hora), minute (minuto), second (segundo) y millisecond (milisegundo). Ejemplos:
select datepart(month,getdate());
retorna el número de mes actual;
select datepart(day,getdate());
retorna el día actual;
select datepart(hour,getdate());
retorna la hora actual;
- datename(partedefecha,fecha): retorna el nombre de una parte específica de una fecha. Los valores para "partedefecha" pueden ser los mismos que se explicaron anteriormente. Ejemplos:
select datename(month,getdate());
retorna el nombre del mes actual;
select datename(day,getdate());
- dateadd(partedelafecha,numero,fecha): agrega un intervalo a la fecha especificada, es decir, retorna una fecha adicionando a la fecha enviada como tercer argumento, el intervalo de tiempo indicado por el primer parámetro, tantas veces como lo indica el segundo parámetro. Los valores para el primer argumento pueden ser: year (año), quarter (cuarto), month (mes), day (dia), week (semana), hour (hora), minute (minuto), second (segundo) y millisecond (milisegundo). Ejemplos:
select dateadd(day,3,'1980/11/02');
retorna "1980/11/05", agrega 3 días.
select dateadd(month,3,'1980/11/02');
retorna "1981/02/02", agrega 3 meses.
select dateadd(hour,2,'1980/11/02');
retorna "1980/02/02 2:00:00", agrega 2 horas.
select dateadd(minute,16,'1980/11/02');
retorna "1980/02/02 00:16:00", agrega 16 minutos.
- datediff(partedelafecha,fecha1,fecha2): calcula el intervalo de tiempo (según el primer argumento) entre las 2 fechas. El resultado es un valor entero que corresponde a fecha2-fecha1. Los valores de "partedelafecha) pueden ser los mismos que se especificaron anteriormente. Ejemplos:
select datediff (day,'2005/10/28','2006/10/28');
retorna 365 (días).
select datediff(month,'2005/10/28','2006/11/29');
retorna 13 (meses).
- day(fecha): retorna el día de la fecha especificada. Ejemplo:
select day(getdate());
- month(fecha): retorna el mes de la fecha especificada. Ejemplo:
select month(getdate());
- year(fecha): retorna el año de la fecha especificada. Ejemplo:
select year(getdate());
Se pueden emplear estas funciones enviando como argumento el nombre de un campo de tipo datetime o smalldatetime.