Cómo Convertir el Número de Datepart a Nombre de Día en SQL Server

Si alguna vez has trabajado con SQL Server, probablemente te has encontrado en situaciones donde necesitabas extraer ciertas partes de una fecha para facilitar su comprensión y usabilidad. Un requisito común es convertir la representación numérica de un día—obtenida de una función datepart—en su nombre correspondiente (como “Lunes” o “Martes”). En esta publicación de blog, exploraremos cómo lograr rápidamente esta conversión en SQL Server.

Entendiendo el Problema

Cuando usas la función datepart de SQL Server, recuperar el día de la semana a partir de una fecha te dará un número entre 1 y 7, donde:

  • 1 = Domingo
  • 2 = Lunes
  • 3 = Martes
  • 4 = Miércoles
  • 5 = Jueves
  • 6 = Viernes
  • 7 = Sábado

Por ejemplo, ejecutar la siguiente consulta devuelve el día de la semana como un número:

SELECT DATEPART(dw, GETDATE());

Si bien este valor numérico puede ser útil, no es muy amigable para el usuario; nuestro objetivo es convertir esta salida numérica en un formato más legible, específicamente el nombre del día.

La Solución: Usando datename

Para obtener el nombre del día en lugar de un número, puedes utilizar la función DATENAME en SQL Server. La función DATENAME te permite devolver el nombre de una parte de fecha específica para una fecha dada. Así es como puedes hacerlo:

Paso 1: Usar la Función DATENAME

Puedes simplemente reemplazar la función datepart con datename en tu consulta SQL de la siguiente manera:

SELECT DATENAME(weekday, GETDATE());

Explicación de la Consulta:

  • DATENAME: Esta función toma dos parámetros; el primero es la parte de la fecha que deseas recuperar (en este caso, weekday), y el segundo es la fecha de la cual deseas extraer la información (en este caso, la fecha actual devuelta por GETDATE()).
  • GETDATE(): Esta función devuelve la marca de tiempo actual del sistema de base de datos.

Paso 2: Ejecutar la Consulta

Cuando ejecutas la declaración de SELECT anterior, devolverá el nombre del día actual, por ejemplo “Domingo”, “Lunes”, etc., lo que facilita mucho su comprensión de un vistazo.

Conclusión

Al usar la función DATENAME en SQL Server, puedes convertir sin esfuerzo una representación numérica del día en un nombre de día más significativo. Esta simple línea de código puede ahorrarte tiempo y hacer que la salida de tus datos sea significativamente más interpretable, especialmente en informes o interfaces de usuario.

¡La próxima vez que necesites recuperar el día de la semana en SQL Server, recuerda que transformar un número en su nombre está a solo una consulta rápida de distancia!

No dudes en experimentar con diferentes fechas reemplazando GETDATE() por tu valor de fecha específico para ver cómo funcionan estas funciones!