una tipo texto operaciones obtener numero nombre mes fechas fecha español entre ejemplos ejemplo diferencia dato convertir convert con año sql sql-server tsql sql-server-2005

tipo - operaciones con fechas sql



Convertir el número de mes a mes Función de nombre en SQL (29)

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

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.


Comenzando con SQL Server 2012, puede usar FORMAT y DATEFROMPARTS para resolver este problema.

select FORMAT(DATEFROMPARTS(1900, @mydate, 1), ''MMMM'', ''en-US'')

Si quieres un mes de tres letras:

select FORMAT(DATEFROMPARTS(1900, @mydate, 1), ''MMM'', ''en-US'')


Creo que esta es la mejor manera de obtener el nombre del mes cuando tienes el número del mes

Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )

[EDITAR]

Como Asif dijo a continuación, otra forma de hacerlo sería

Select DateName( month , DateAdd( month , @MonthNumber , -1 ) )


Creo que esto es suficiente para obtener el nombre del mes cuando tienes una cita.

SELECT DATENAME(month ,GETDATE())


En algunos lugares como el hebreo, hay meses bisiestos dependiendo del año, por lo que para evitar errores en dichos entornos, puede considerar la siguiente solución:

SELECT DATENAME(month, STR(YEAR(GETDATE()), 4) + REPLACE(STR(@month, 2), '' '', ''0'') + ''01'')


Es muy simple.

select DATENAME(month, getdate())

salida: enero


Este trabajó para mí:

@MetricMonthNumber (some number) SELECT (DateName( month , DateAdd( month , @MetricMonthNumber - 1 , ''1900-01-01'' ) )) AS MetricMonthName FROM TableName

De una publicación anterior de @leoinfo y @Valentino Vranken. Acabo de hacer una selección rápida y funciona.


Esto funcionará bien --seleccione el nombre de la fecha (M, GETDATE ())


Lo siguiente funciona para mí:

CAST (GETDATE () COMO CHAR (3))


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.

--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]


Para convertir el número de mes en el nombre de mes, intente el siguiente

declare @month smallint = 1 select DateName(mm,DATEADD(mm,@month - 1,0))


Puede usar la función CONVERT incorporada

select CONVERT(varchar(3), Date, 100) as Month from MyTable.

Esto mostrará los primeros 3 caracteres del mes (ENE, FEB, etc.)


Puede usar la functina convertir como se muestra a continuación

CONVERT(VARCHAR(3), DATENAME(MM, GETDATE()), 100)


SELECCIONAR DATENAME (MES, dateadd (mes, -3, getdate ()))


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()))


Trabajando para mi

SELECT MONTHNAME(<fieldname>) AS "Month Name" FROM <tablename> WHERE <condition>


Un poco hacky pero debería funcionar:

SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST(''2008-01-01'' AS datetime)))


Usa esta declaración

SELECT TO_CHAR(current_date,''dd MONTH yyyy'') FROM dual

esto convertirá el número de mes en cadena completa de mes


Use 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á un nombre corto para el mes. De esta manera: enero, febrero, marzo, etc.


además del original

SELECT DATENAME(m, str(2) + ''/1/2011'')

Puedes hacerlo

SELECT DATENAME(m, str([column_name]) + ''/1/2011'')

de esta forma, obtienes nombres para todas las filas en una tabla. donde [column_name] representa una columna entera que contiene valores numéricos 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 quieres hacer esto con variable

DECLARE @integer int; SET @integer = 6; SELECT DATENAME(m, str(@integer) + ''/1/2011'')


puedes obtener la fecha así. por ejemplo: - Tabla de usuarios

id name created_at 1 abc 2017-09-16 2 xyz 2017-06-10

puedes obtener el nombre del mes como este

select year(created_at), monthname(created_at) from users;

salida

+-----------+-------------------------------+ | year(created_at) | monthname(created_at) | +-----------+-------------------------------+ | 2017 | september | | 2017 | june |


Usa la mejor manera

Select DateName( month , DateAdd( month , @MonthNumber , -1 ))


Use esta declaración para convertir el valor numérico del mes al nombre del mes.

SELECT CONVERT(CHAR(3), DATENAME(MONTH, GETDATE()))


Declare @MonthNumber int SET @MonthNumber=DatePart(Month,GETDATE()) Select DateName( month , DateAdd( month , @MonthNumber , 0 ) - 1 )

Explicación

  1. First Decalre Variable MonthNumber
  2. Obtenga el mes actual para DatePart que devuelve el número de mes
  3. Tercer nombre de mes de devolución de consulta

SELECT DATENAME(month, GETDATE()) AS ''Month Name''


SELECT DateName(M, DateAdd(M, @MONTHNUMBER, -1))


SUBSTRING(''JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC '', (@intMonth * 4) - 3, 3)


select monthname(curdate());

O

select monthname(''2013-12-12'');


to_char(to_date(V_MONTH_NUM,''MM''),''MONTH'')

donde V_MONTH_NUM es el número de mes

SELECT to_char(to_date(V_MONTH_NUM,''MM''),''MONTH'') from dual;