Tengo meses almacenados en SQL Server como 1,2,3,4, ... 12. Me gustaría mostrarlos como enero, febrero, etc. ¿Hay alguna función en SQL Server como MonthName (1) = enero? Estoy tratando de evitar una declaración CASE, si es posible.Convertir mes número a mes Nombre Función en SQL
Respuesta
Un poco hacky pero debería funcionar:
SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime)))
En algunas localidades, como el hebreo, hay leap months depende del año, por lo que deben evitarse errores en dichos lugares que podría considerar la siguiente solución:
SELECT DATENAME(month, STR(YEAR(GETDATE()), 4) + REPLACE(STR(@month, 2), ' ', '0') + '01')
¿Existe una función para convertir una fecha a una fecha judía en SQL? No es que yo sepa de ... –
Creo que esta es la mejor manera de obtener el mes nombre cuando tiene el número de mes
Select DateName(month , DateAdd(month , @MonthNumber , 0) - 1)
[EDIT]
Como dijo Asif a continuación, otra forma de hacer esto sería
Select DateName(month , DateAdd(month , @MonthNumber , -1))
por motivos de legibilidad, realmente lo escribiría así: Seleccione FechaNombre (mes, FechaAdd (mes, @MonthNumber - 1, '1900-01-01')) –
una posible solución alternativa Seleccione FechaNombre (month, DateAdd (month, @MonthNumber, -1)) – Asif
Eso es perfecto. Esta debería ser la respuesta. – gotqn
Se puede utilizar el incorporado CONVERT
función
select CONVERT(varchar(3), Date, 100) as Month from MyTable.
Esta voluntad mostrar los primeros 3 caracteres del mes (ENE, FEB, etc.)
SELECT DATENAME(month, GETDATE()) AS 'Month Name'
Es obtener el nombre del mes por fecha, no el número del mes, como lo solicitó SO. – Imad
Puede utilizar el functin convertido de la siguiente manera
CONVERT(VARCHAR(3), DATENAME(MM, GETDATE()), 100)
además de originales
SELECT DATENAME(m, str(2) + '/1/2011')
puede hacerlo
SELECT DATENAME(m, str([column_name]) + '/1/2011')
de esta manera usted obtiene nombres para todas las filas en una tabla. donde [column_name] 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 en la que puedo extraer el mes. '/ 1/2011' puede ser cualquier fecha
si usted quiere hacer esto con la variable
DECLARE @integer int;
SET @integer = 6;
SELECT DATENAME(m, str(@integer) + '/1/2011')
Ésta funcionó para mí:
@MetricMonthNumber (some number)
SELECT
(DateName(month , DateAdd(month , @MetricMonthNumber - 1 , '1900-01-01'))) AS MetricMonthName
FROM TableName
Desde un post anterior de @leoinfo y @Valentino Vranken. Acabo de hacer una selección rápida y funciona.
Utilice esta declaración
SELECT TO_CHAR(current_date,'dd MONTH yyyy') FROM dual
Esto convertirá el número de mes a mes cadena completa
TO_CHAR() es una función de Oracle. El OP está utilizando SQL Server, que tiene la función CONVERT diferente pero equivalente. – APC
SUBSTRING('JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ', (@intMonth * 4) - 3, 3)
¡Me gusta esta manera alternativa de pensar en el jardín izquierdo! Alimento para el pensamiento –
¡Y es determinista! Se puede usar como columna calculada también, ¡gracias! –
nice ... estaba buscando un código simple para obtener meses desde enero a [#] y esto funcionó muy bien. para mostrar varios meses, simplemente cambie a algo como esto >> SUBSTRING ('ENE FEB MAR ABR MAY JUN JUL AUG SEP OCT NOV DEC', 0, (@intMonth * 4)) –
to_char(to_date(V_MONTH_NUM,'MM'),'MONTH')
donde V_MONTH_NUM
es el número del mes
SELECT to_char(to_date(V_MONTH_NUM,'MM'),'MONTH') from dual;
Parece que se está refiriendo a Oracle. La publicación está etiquetada con SQL 2005. – Philter
Declare @MonthNumber int
SET @MonthNumber=DatePart(Month,GETDATE())
Select DateName(month , DateAdd(month , @MonthNumber , 0) - 1)
Explicación:
- Primera decalre variable
MonthNumber
- Obtener Mes actual de
DatePart
cuales vuelta Número Mes - tercer mes Volver Nombre de la consulta
creo que esto es suficiente para obtener el nombre del mes cuando tienes una cita
SELECT DATENAME(month ,GETDATE())
Ya existe otra respuesta exacta – Yaroslav
Los siguientes obras para mí:
CAST (GETDATE() como CHAR (3))
respuesta perfecta gracias. –
SELECT DATENAME (MES, dateadd (mes, -3, getdate ()))
utilizar la mejor manera
Select DateName(month , DateAdd(month , @MonthNumber , -1))
select monthname(curdate());
O
select monthname('2013-12-12');
Trabajando para mí
SELECT MONTHNAME(<fieldname>) AS "Month Name" FROM <tablename> WHERE <condition>
este que va a trabajar --select datename (M, GETDATE())
Utilice esta declaración para convertir Valor numérico del mes al nombre del mes.
SELECT CONVERT(CHAR(3), DATENAME(MONTH, GETDATE()))
A menos que me equivoque, no se usa un número entero, como pidió el OP. – influent
Utilice esta declaración para obtener el nombre del mes:
DECLARE @date datetime
SET @date='2015/1/4 00:00:00'
SELECT CAST(DATENAME(month,@date) AS CHAR(3))AS 'Month Name'
esto le dará nombre corto mes. De esta manera: enero, febrero, marzo, etc.
Aquí está mi solución usando información de otros para resolver un problema.
datename(month,dateadd(month,datepart(month,Help_HelpMain.Ticket_Closed_Date),-1)) as monthname
Simplemente reste el mes actual de la fecha de hoy, luego agregue nuevamente su número de mes. Luego use la función de nombre de fecha para dar el nombre completo todo en 1 línea.
print datename(month,dateadd(month,-month(getdate()) + 9,getdate()))
SELECT DateName(M, DateAdd(M, @MONTHNUMBER, -1))
No hay un sistema definido en función de 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.
--Create the user-defined function
CREATE FUNCTION getmonth (@num int)
RETURNS varchar(9) --since 'September' is the longest string, length 9
AS
BEGIN
DECLARE @intMonth Table (num int PRIMARY KEY IDENTITY(1,1), month varchar(9))
INSERT INTO @intMonth VALUES ('January'), ('February'), ('March'), ('April'), ('May')
, ('June'), ('July'), ('August') ,('September'), ('October')
, ('November'), ('December')
RETURN (SELECT I.month
FROM @intMonth I
WHERE I.num = @num)
END
GO
--Use the function for various months
SELECT dbo.getmonth(4) AS [Month]
SELECT dbo.getmonth(5) AS [Month]
SELECT dbo.getmonth(6) AS [Month]
Es muy simple.
select DATENAME(month, getdate())
de salida: Enero
Esto solo funciona si tiene un valor de fecha completo, no un número entero de mes. – gunr2171
Convertir número de meses a nombre del mes, tratar el siguiente
declare @month smallint = 1
select DateName(mm,DATEADD(mm,@month - 1,0))
se puede obtener la fecha como esta. por ejemplo: - Los usuarios mesa
id name created_at
1 abc 2017-09-16
2 xyz 2017-06-10
se puede obtener el monthname como esta salida
select year(created_at), monthname(created_at) from users;
+-----------+-------------------------------+
| year(created_at) | monthname(created_at) |
+-----------+-------------------------------+
| 2017 | september |
| 2017 | june |
y ¿dónde está la función monthname ??? – ger
- 1. Convertir mes en mes nombre
- 2. Convertir número de mes a mes nombre corto
- 3. convertir mes del nombre al número
- 4. Convertir el nombre del mes a entero
- 5. ¿Cómo convertir el número de mes a nombre de mes completo en oráculo?
- 6. Convertir el nombre del mes en el número
- 7. nombre de mes a número de mes y viceversa en python
- 8. Obtener el nombre Mes del número del mes
- 9. DateTime convertir de int a Mes Nombre en C#, Silverlight
- 10. Bash: ¿Cómo convertir un número en una cadena de mes?
- 11. iphone ¿cómo puedo obtener el nombre del mes a partir del número de mes?
- 12. Android DatePicker nombre Mes pantalla
- 13. Nombre de este mes (Date.today.month como nombre)
- 14. Obtener el nombre del mes del número en PostgreSQL
- 15. SQL actual mes/año pregunta
- 16. ¿La mejor manera de convertir un número entero en un nombre de mes en C#?
- 17. ¿Cómo obtener el número de días de un mes dado el mes y año en particular?
- 18. SQL Resultados grupo por mes
- 19. ¿Cómo mostrar el nombre del mes por número?
- 20. Convierte Mes cadena a entero en Java
- 21. Convertir una abreviatura meses a un mes numérico, en I
- 22. Rails número de semanas en el mes
- 23. python - Número de semana del mes
- 24. Agregar un mes a una fecha en T SQL
- 25. (Django) cómo obtener el nombre del mes?
- 26. MS SQL selecciona una fecha por mes?
- 27. sql - inicio de la hora, mes, etc.
- 28. SQL - Obtener Día numérica de mes/trimestre
- 29. cambio de nombre de un mes a francés
- 30. Calcular días del mes
Por qué el '-1'? ¿Es necesario porque los meses en SQL Server están compensados por uno? – DoomerDGR8
@ DoomerDGR8 en realidad se debe a que la fecha que se usa para iniciar la función de fecha y hora comienza en 1. si necesitamos el nombre de fecha de enero, estaríamos agregando 1 mes a 2008-01-01, lo que nos daría el 2008-02-01, que es febrero. así que restamos 1 para dar cuenta de esto, y obtenemos enero nuevamente. – DForck42
Para solucionar el problema de restar 1 de su fecha y hora, utilice una fecha y hora en diciembre en lugar de enero. Por ejemplo SELECT DATENAME (month, DATEADD (month, @mydate, CAST ('1978-12-01' AS datetime))) –