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
¿Qué es y para que sirve SQL Joins?
¿Qué es y para que sirve SQL Joins?

Una cláusula SQL JOIN se usa para combi

Introducción al curso gratuito de SQL Server
Introducción al curso gratuito de SQL Server

SQL es un lenguaje de consulta estructurado de

Cómo filtrar por un rango de fechas en SQL Server con el operador BETWEEN
Cómo filtrar por un rango de fechas en SQL Server con el operador BETWEEN

La sentencia u operador BETWEEN de SQL le perm

0 Comentarios
Enviame un comentario