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

¿Qué es y para que sirve SQL Joins?

¿Qué es y para que sirve SQL Joins?

Una cláusula SQL JOIN se usa para combinar filas de dos o más tablas, en función de una columna relacionada entre ellas.

Ver artículo completo
¿Cuáles son los tipos de datos de SQL Server?

¿Cuáles son los tipos de datos de SQL Server?

Resumen: en este tutorial, aprenderás sobre los tipos de datos de SQL Server, incluidos los numéricos, cadenas de caracteres, binarios, fecha y hora, entre otros tipos de datos.

Ver artículo completo
¿Cómo obtener el valor mínimo en SQL Server con la función MIN()?

¿Cómo obtener el valor mínimo en SQL Server con la función MIN()?

En este tutorial, aprenderás a usar la función MIN() de SQL Server para encontrar el valor mínimo en un conjunto de registros o valores.

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