Tengo meses almacenados en SQL Server como 1,2,3,4, ... 12. Me gustaría mostrarlos como enero, febrero, etc. ¿Hay una función en SQL Server como MonthName (1) = enero? Estoy tratando de evitar una declaración CASE, si es posible.
sql
sql-server
tsql
sql-server-2005
Saif Khan
fuente
fuente
Creo que esta es la mejor manera de obtener el nombre del mes cuando tienes el número de mes
O
fuente
fuente
fuente
Usa la mejor manera
fuente
Es muy simple.
salida: enero
fuente
Puedes usar la
CONVERT
función incorporadaEsto mostrará los primeros 3 caracteres del mes (ENE, FEB, etc.)
fuente
además del original
SELECT DATENAME(m, str(2) + '/1/2011')
Puedes hacerlo
SELECT DATENAME(m, str([column_name]) + '/1/2011')
de esta manera obtienes nombres para todas las filas de una tabla. donde [nombre_columna] representa una columna entera que contiene el valor numérico del 1 al 12
2 representa cualquier número entero, por cadena de contacto creé una fecha donde puedo extraer el mes. '/ 1/2011' puede ser cualquier fecha
si quieres hacer esto con variable
fuente
Lo siguiente funciona para mí:
fuente
Use esta declaración para convertir el valor numérico del mes al nombre del mes.
fuente
En algunos entornos locales como el hebreo, hay meses bisiestos que dependen del año, por lo que para evitar errores en dichos entornos locales, puede considerar la siguiente solución:
fuente
Claro que esto funcionará
fuente
A partir de SQL Server 2012, puede usar FORMAT y DATEFROMPARTS para resolver este problema. (Si desea nombres de los meses de otras culturas, cambie:
en-US
)Si quieres un mes de tres letras:
Si realmente quieres, puedes crear una función para esto:
fuente
Puede usar la función de conversión de la siguiente manera
fuente
Simplemente reste el mes actual de la fecha de hoy, luego vuelva a agregar su número de mes. Luego use la función datename para dar el nombre completo en 1 línea.
fuente
Creo que esto es suficiente para obtener el nombre del mes cuando tienes fecha.
fuente
fuente
Para convertir el número del mes al nombre del mes, intente lo siguiente
fuente
fuente
Este me funcionó:
De una publicación anterior de @leoinfo y @Valentino Vranken. Acabo de hacer una selección rápida y funciona.
fuente
Explicacion:
MonthNumber
DatePart
que se devuelve el número de mesfuente
O
fuente
Trabajando para mi
fuente
puedes obtener la fecha como esta. por ejemplo: - Tabla de usuarios
puedes obtener el nombre del mes como este
salida
fuente
Use esta declaración para obtener el nombre del mes:
Esto te dará un nombre de mes corto. Así: enero, febrero, marzo, etc.
fuente
Aquí está mi solución usando información de otros para resolver un problema.
fuente
No hay una función definida por el sistema en el servidor SQL. Pero puede crear su propia función definida por el usuario, una función escalar. Encontrará funciones escalares en el Explorador de objetos para su base de datos: Programabilidad-> Funciones-> Funciones con valores escalares. A continuación, uso una variable de tabla para unir todo.
fuente
Puede crear una función como esta para generar el Mes y hacer SELECT dbo.fn_GetMonthFromDate (date_column) como Month FROM table_name
fuente
La forma más fácil es llamando a la función
MONTHNAME(your_date)
. your_date puede ser un valor estático o el valor de uno de los campos de su tabla.fuente
SELECCIONE NOMBRE DEL MES (concat ('1970 -', [Mes int val], '- 01'))
ejemplo- SELECCIONE NOMBRE DEL MES (concat ('1970 -', 4, '- 01'))
respuesta- abril
fuente