DATENAME
y para qué se usa?
DATENAME
es una función que permite obtener el nombre textual de componentes específicos de una fecha, como el nombre del mes (January
, February
, etc.) o el nombre del día (Monday
, Tuesday
, etc.). La salida es una cadena de texto que representa la parte especificada de la fecha.
Usos comunes de DATENAME
:
Enero
, Febrero
, etc.).
DATENAME
DATENAME ( datepart, date )
datepart
: Especifica la parte de la fecha que se quiere obtener. Los valores permitidos incluyen:
year
(yyyy
, yy
): Año.
quarter
(qq
, q
): Trimestre.
month
(mm
, m
): Nombre del mes.
dayofyear
(dy
, y
): Día del año.
day
(dd
, d
): Día del mes.
week
(wk
, ww
): Semana del año.
weekday
(dw
, w
): Nombre del día de la semana.
hour
(hh
): Hora.
minute
(mi
, n
): Minuto.
second
(ss
, s
): Segundo.
millisecond
(ms
): Milisegundo.
microsecond
(mcs
): Microsegundo.
nanosecond
(ns
): Nanosegundo.
date
: La fecha de la cual se desea extraer el nombre de la parte. Puede ser una columna, una constante de fecha ('2024-09-27'
), o la función GETDATE()
para la fecha y hora actual.
DATENAME
SELECT DATENAME(month, '2024-09-27') AS NombreMes;
Resultado:
NombreMes
----------
September
La función devuelve el nombre del mes (September
) para la fecha proporcionada ('2024-09-27'
).
SELECT DATENAME(weekday, '2024-09-27') AS NombreDia;
Resultado:
NombreDia
-----------
Friday
Este ejemplo muestra el nombre del día de la semana (Friday
) para la fecha especificada.
DATENAME
con la fecha actual
SELECT DATENAME(year, GETDATE()) AS AñoActual,
DATENAME(month, GETDATE()) AS MesActual,
DATENAME(weekday, GETDATE()) AS DiaActual;
Resultado (para una fecha actual del 27 de septiembre de 2024):
AñoActual | MesActual | DiaActual
----------|-----------|----------
2024 | September | Friday
Esto muestra el año, el mes y el día de la semana de la fecha actual usando GETDATE()
.
DATENAME
para generar descripciones de fecha
Si quieres crear una cadena que muestre una descripción completa de la fecha:
SELECT 'Hoy es ' + DATENAME(weekday, GETDATE()) + ', ' +
DATENAME(day, GETDATE()) + ' de ' +
DATENAME(month, GETDATE()) + ' del ' +
DATENAME(year, GETDATE()) AS DescripcionFecha;
Resultado:
DescripcionFecha
-------------------------
Hoy es Friday, 27 de September del 2024
Este ejemplo concatena varias llamadas a DATENAME
para generar un texto descriptivo de la fecha actual.
SELECT DATENAME(quarter, '2024-09-27') AS NombreTrimestre;
Resultado:
NombreTrimestre
----------------
3
La función devuelve el número del trimestre (3
) para la fecha especificada ('2024-09-27'
).
DATENAME
con datos de tablas
Si tienes una tabla Pedidos
con una columna FechaPedido
, puedes extraer el nombre del mes de cada pedido:
SELECT PedidoID, FechaPedido, DATENAME(month, FechaPedido) AS MesPedido
FROM Pedidos;
Resultado:
PedidoID | FechaPedido | MesPedido
---------|-------------|----------
1 | 2024-01-15 | January
2 | 2024-03-22 | March
3 | 2024-09-10 | September
Esto extrae y muestra el nombre del mes para cada pedido en la tabla.
Puedes utilizar DATENAME
para comparar o filtrar datos basados en nombres de partes específicas. Por ejemplo, para encontrar pedidos realizados en un día específico de la semana:
SELECT PedidoID, FechaPedido
FROM Pedidos
WHERE DATENAME(weekday, FechaPedido) = 'Monday';
Este comando selecciona todos los pedidos que se realizaron en un lunes.
DATENAME
devuelve siempre el resultado como un valor de tipo NVARCHAR
.
es-ES
, los nombres de días y meses se mostrarán en español (lunes
, enero
).
SET LANGUAGE
:
SET LANGUAGE Spanish;
SELECT DATENAME(month, '2024-09-27');
Resultado:
septiembre
Para más información sobre DATENAME
, consulta la documentación oficial de Microsoft.
Jorge García
Fullstack developer