SQL

Cómo convertir el número de mes al nombre del mes en un campo fecha en SQL Server

Estrada Web Group
Administrador
Cómo convertir el número de mes al nombre del mes en un campo fecha en SQL Server

Supongamos que tengo una tabla de ventas con datos de ventas por mes. Las ventas diarias se almacenan en la tabla con columnas como fecha, cantidad, precio, etc. Quiero obtener el total de ventas de cada mes. Ahora que tengo una columna con el tipo de datos de fecha, quiero convertir el número del mes en la fecha a Nombre del mes (como enero, febrero, marzo, etc.). Te mostraré cómo se hace esto en SQL Server.

Tabla SQL Server

CREATE TABLE [dbo].[Ventas](
    [ID] [int] NOT NULL,
    [Cantidad] [int] NULL,
    [Precio] [numeric](18, 2) NULL,
    [Fecha] [datetime] NULL,
)

La tabla tiene cuatro columnas con la columna Fecha con el tipo datetime. Puedes usar el tipo de Date también.

Insertamos algunos datos en la tabla.

INSERT INTO dbo.Ventas (ID, Cantidad, Precio, Fecha)
VALUES (1, 21, 11000, '2019-02-15'),
    (2, 3, 2000, '2019-02-09'),
    (3, 15, 21000, '2019-02-27'),
    (4, 28, 51000, '2019-03-02'),
    (5, 9, 6200, '2019-03-05')

Cada fila de la tabla ahora tiene las cantidades vendidas por día, junto con el precio y la fecha en que se venden los productos. La fecha tiene meses en números, sin embargo, deseo convertir el número del mes al nombre, como, 2 a febrero, 3 a marzo, etc.

Obtener el nombre del mes de número

Para convertir el mes de números a nombre del mes, escribiré esta consulta.

SELECT DATENAME (MONTH, DATEADD(MONTH, MONTH(Fecha) - 1, '1900-01-01')) Mes, 
	SUM(Cantidad) Cantidad _Vendida, SUM(Precio) PrecioTotal 
FROM dbo.Ventas 
GROUP BY MONTH(Fecha)

Resultado:

Mes

Cantidad_Vendida

PrecioTotal

Febrero

39

34000.00

Marzo

37

57200.00

En la consulta anterior, estoy usando la función incorporada DATENAME () para obtener la cadena de la parte de la fecha especificada (como MONTH) de una fecha específica.

Sintaxis DATENAME

DATENAME ( datepart, date ) 

Por ejemplo, para obtener el día, mes y año actuales, puedes usar la siguiente consulta usando la función DATENAME.

select DATENAME 
(DAY, GETDATE()) Hoy, 
DATENAME (MONTH, GETDATE()) Mes_Actual, 
DATENAME (YEAR, GETDATE()) Year_Actual 

Espero que este ejemplo te sea útil. Si tienes otra opción para hacer esto, puedes compartir la solución aquí en mi blog.

Gracias por leer.

Compartir artículo:

Más artículos geniales

¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?

¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?

En este tutorial de SQL Server, aprenderás a usar la instrucción DELETE de SQL Server para eliminar una o más filas de una tabla.

Ver artículo completo
¿Cómo obtener la cantidad de registros en SQL Server con la función COUNT()?

¿Cómo obtener la cantidad de registros en SQL Server con la función COUNT()?

En este tutorial, aprenderás a usar la función COUNT() de SQL Server para obtener la cantidad de elementos en un conjunto.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;