Câu SQL tách tháng-năm giữa 2 ngày riêng biệt


Chào các bạn,

Cường xin post câu lệnh TSQL dùng để tách tháng và năm giữa hai ngày cách biệt:

Ví dụ: Ngày bắt đầu là ngày “2012-02-01”, ngày kết thúc là ngày “2013-04-20”

=>Kết quả

022012
032012
042012
052012
062012
072012
082012
092012
102012
112012
122012
012013
022013
032013
042013

DECLARE @pdteBeg_Date datetime=’2012-02-01′
DECLARE @pdteEnd_Date datetime=’2013-04-20′
DECLARE @pintBeg_Mnth int
DECLARE @pintEnd_Mnth int
DECLARE @pintBeg_Year int
DECLARE @pintEnd_Year int
CREATE TABLE #temp_TableMonth(MnthYear varchar(10))
WHILE @pdteBeg_Date<=@pdteEnd_Date
BEGIN
IF LEN(CONVERT(VARCHAR(5),MONTH(@pdteBeg_Date)))=1
BEGIN
INSERT #temp_TableMonth VALUES(‘0’+CONVERT(varchar(5),MONTH(@pdteBeg_Date))+CONVERT(varchar(5),YEAR(@pdteBeg_Date)))
SET @pdteBeg_Date=DATEADD(MONTH,1,@pdteBeg_Date)
END
ELSE
BEGIN
INSERT #temp_TableMonth VALUES(CONVERT(varchar(5),MONTH(@pdteBeg_Date))+CONVERT(varchar(5),YEAR(@pdteBeg_Date)))
SET @pdteBeg_Date=DATEADD(MONTH,1,@pdteBeg_Date)
END
END
SELECT * FROM #temp_TableMonth
DROP TABLE #temp_TableMonth

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s