Komma namnen på månaderna i ett datumintervall är en mycket mindre komplicerad uppgift än det först kan verka , även om det kan ske på lite olika sätt beroende på vilken variant av SQL dig använder . Med T - SQL kan göras med DATENAME funktion och en tabell variabel , medan med MySQL du skulle använda MONTHNAME funktion och en temporär tabell . Instruktioner
Få månadsnamn i T - SQL
1
Deklarera startdatum och slutdatum variabler datum , samt en tabell variabel för att tillfälligt hålla månadsnamnen , t.ex.:
FÖRKLARA @ start DATETIME , FÖRKLARA @ slutet DATETIME ,
FÖRKLARA @ månader tABELL ( MONTH_NAME VARCHAR ( 30 ) ) ;
SET @ start = '2011 -01- 01 ' ; SET @ end = '2011 - 12-01 ' ,
2
iterera genom månaderna , lägga till månadsnamnen till bordet variabel med DATENAME och DateAdd funktioner , till exempel :
FÖRKLARA @ start DATETIME , FÖRKLARA @ slutet DATETIME ,
FÖRKLARA @ månader tABELL ( MONTH_NAME VARCHAR ( 30 ) ) ;
SET @ start = '2011 -01- 01 ' , SET @ end = ' 2011-12-01 ' ;
( @ start < @ end ) BEGIN
INSERT INTO @ monthsSELECT DATENAME ( månad , @ start ) ,
SET @ start = DATEADD ( månad , 1 , @ start ) ,
END
3
slutligen välja en lista över månadens namn från tabellen variabeln , till exempel :
FÖRKLARA @ start DATETIME , FÖRKLARA @ slutet DATETIME ,
FÖRKLARA @ månader tABELL ( MONTH_NAME VARCHAR ( 30 ) ) ;
SET @ start = '2011 -01- 01 ' ; SET @ end = '2011 - 12-01 ' ,
( @ start < @ end ) BEGIN
INSERT INTO @ monthsSELECT DATENAME ( månad , @ start ) ,
SET @ start = DATEADD ( månad , 1 , @ start ) ,
END
SELECT * FROM @ månader ,
Få månadsnamn i MySQL
4
Deklarera början och slutet variabler datum , och sedan skapa en temporär tabell för att hålla månadsnamnen , till exempel :
FÖRKLARA @ start DATETIME , FÖRKLARA @ end DATETIME ;
SKAPA temporär tabell TempMonths ( MONTH_NAME VARCHAR ( 30 ) ) ,
SET @ start = '2011 -01- 01 ' , SET @ end = '2011 - 12-01 ' ,
5
iterera genom månaderna , lägga till månadsnamnen till den tillfälliga tabellen med MONTHNAME och DATE_ADD funktioner , till exempel :
FÖRKLARA @ start DATETIME , FÖRKLARA @ slutet DATETIME ;
SKAPA temporär tabell TempMonths ( MONTH_NAME VARCHAR ( 30 ) ) ;
SET @ start = '2011 -01- 01 ' , SET @ end = '2011 - 12-01 ' ,
( @ start < @ end ) BEGIN
INSERT INTO TempMonthsSELECT MONTHNAME ( @ start ) ,
SET @ start = DATE_ADD ( @ start , INTERVALL 1 månad) ,
eND
6
slutligen välja en lista över månadens namn och sanering den tillfälliga tabellen , till exempel :
FÖRKLARA @ start DATETIME , FÖRKLARA @ end DATETIME ,
SKAPA temporär tabell TempMonths ( MONTH_NAME VARCHAR ( 30 ) ) ,
SET @ start = '2011 -01- 01 ' , SET @ end = '2011 - 12-01 ' ,
( @ början < @ end ) BEGIN
INSERT INTO TempMonthsSELECT MONTHNAME ( @ start ) ,
SET @ start = DATE_ADD ( @ start , INTERVALL 1 månad) ,
eND
SELECT * FROM TempMonths ,
DROP TABLE TempMonths ,