You're relying on the BETWEEN operator, which might give you surprising results with columns that you might interpret as numbers, but which the dbms will interpret as char(n) or varchar(n). This is especially true with incomplete dates.
The simplest approach is to avoid calculating altogether, and just name the months you want in the WHERE clause. Defensive programming would name the fiscal year, too.
WHERE M_Y IN ('1012', '1112', '1212')
AND FY = 2013
A better approach is to fix your storage in a way that preserves useful (and sensible) semantics. Here are two different ways to store fiscal periods, "month first" and "year first".
drop table fiscal_periods;
create table fiscal_periods (
y_m char(4) not null unique,
m_y char(4) not null unique
);
insert into fiscal_periods values ('1201', '0112');
insert into fiscal_periods values ('1202', '0212');
insert into fiscal_periods values ('1203', '0312');
insert into fiscal_periods values ('1204', '0412');
insert into fiscal_periods values ('1205', '0512');
insert into fiscal_periods values ('1206', '0612');
insert into fiscal_periods values ('1207', '0712');
insert into fiscal_periods values ('1208', '0812');
insert into fiscal_periods values ('1209', '0912');
insert into fiscal_periods values ('1210', '1012');
insert into fiscal_periods values ('1211', '1112');
insert into fiscal_periods values ('1212', '1212');
insert into fiscal_periods values ('1301', '0113');
insert into fiscal_periods values ('1302', '0213');
insert into fiscal_periods values ('1303', '0313');
insert into fiscal_periods values ('1304', '0413');
insert into fiscal_periods values ('1305', '0513');
insert into fiscal_periods values ('1306', '0613');
insert into fiscal_periods values ('1307', '0713');
insert into fiscal_periods values ('1308', '0813');
insert into fiscal_periods values ('1309', '0913');
insert into fiscal_periods values ('1310', '1013');
insert into fiscal_periods values ('1311', '1113');
insert into fiscal_periods values ('1312', '1213');
Now try a simple query, month first.
-- Select the periods between Oct 2012 and Feb 2013
select m_y
from fiscal_periods
where m_y between '1012' and '0213'
order by m_y;
-- Returns the empty set.
The same query, year first.
select y_m
from fiscal_periods
where y_m between '1210' and '1302'
order by y_m;
y_m
--
1210
1211
1212
1301
1302
Better still, avoid Y2K issues and store the year as four digits: 201201, 201302, etc.