-
Cómo obtener los nombres de los meses entre dos fechas en SQL
-
Obtención de los nombres de los meses en un intervalo de fechas es una tarea mucho menos complicado de lo que puede parecer, a pesar de que se puede realizar de manera ligeramente diferente dependiendo del sabor de SQL que está utilizando. Con T-SQL que se puede hacer con la función DATENAME y una variable de tabla, mientras que con MySQL que utilizaría la función MONTHNAME y una tabla temporal.Instrucciones
Obtener Mes Los nombres en T-SQL
1 Declarar las variables de fecha de inicio y finalización, así como una variable de tabla para almacenar temporalmente los nombres de los meses; por ejemplo:
DECLARE DATETIME @Start;
DECLARE DATETIME @end;DECLARE @months TABLA (nombre-mes VARCHAR (30));
SET @Start = '2011-01-01';
@end SET = '2011-12-01';2 Iterar a través de los meses, añadiendo los nombres de los meses a la variable de tabla utilizando las funciones DATEADD DATENAME y; por ejemplo:
DECLARE DATETIME @Start;
DECLARE DATETIME @end;DECLARE @months TABLA (nombre-mes VARCHAR (30));
SET @Start = '2011-01-01';
@end SET = '2011-12-01';MIENTRAS (@Start <@end)
EMPEZARINSERT INTO @months
SELECT DATENAME(month, @start);SET @Start = DATEADD (mes, 1, @Start);
FIN
3 Por último, seleccione la lista de los nombres de los meses de la variable de tabla; por ejemplo:
DECLARE DATETIME @Start;
DECLARE DATETIME @end;DECLARE @months TABLA (nombre-mes VARCHAR (30));
SET @Start = '2011-01-01';
@end SET = '2011-12-01';MIENTRAS (@Start <@end)
EMPEZARINSERT INTO @months
SELECT DATENAME(month, @start);SET @Start = DATEADD (mes, 1, @Start);
FIN
SELECT * FROM @months;
Obtener Mes Los nombres en MySQL
4 Declarar las variables de fecha de inicio y fin, y luego crear una tabla temporal para contener los nombres de los meses; por ejemplo:
DECLARE DATETIME @Start;
DECLARE DATETIME @end;CREAR TempMonths tabla temporal (nombre-mes VARCHAR (30));
SET @Start = '2011-01-01';
@end SET = '2011-12-01';5 Iterar a través de los meses, añadiendo los nombres de los meses de la tabla temporal utilizando las funciones DATE_ADD MONTHNAME y; por ejemplo:
DECLARE DATETIME @Start;
DECLARE DATETIME @end;CREAR TempMonths tabla temporal (nombre-mes VARCHAR (30));
SET @Start = '2011-01-01';
@end SET = '2011-12-01';MIENTRAS (@Start <@end)
EMPEZARINSERT INTO TempMonths
SELECT MONTHNAME(@start);SET @Start = DATE_ADD (@Start, INTERVALO DE 1 MES);
FIN
6 Por último, seleccione la lista de los nombres de los meses y limpieza de la tabla temporal; por ejemplo:
DECLARE DATETIME @Start;
DECLARE DATETIME @end;CREAR TempMonths tabla temporal (nombre-mes VARCHAR (30));
SET @Start = '2011-01-01';
@end SET = '2011-12-01';MIENTRAS (@Start <@end)
EMPEZARINSERT INTO TempMonths
SELECT MONTHNAME(@start);SET @Start = DATE_ADD (@Start, INTERVALO DE 1 MES);
FIN
SELECT * FROM TempMonths;
DROP TABLE TempMonths;