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.

Artículos relacionados
Base de datos de muestra de SQL Server para los ejemplos que realizaremos
Base de datos de muestra de SQL Server para los ejemplos que realizaremos

En este tutorial, le presentaremos una base de

¿Qué es y cómo utilizar la instrucción SELECT en SQL server?
¿Qué es y cómo utilizar la instrucción SELECT en SQL server?

La instrucción SELECT en SQL se usa par

¿Cómo eliminar las etiquetas html de una cadena en SQL?
¿Cómo eliminar las etiquetas html de una cadena en SQL?

En este artículo pondré un peque

0 Comentarios
Enviame un comentario