If Field2 and Field3 are qtr/year values then you can re-arrange them to YY'Q'QTR so it's sortable. Next convert Field1 to the same format which will allow you to filter using BETWEEN.
IF object_id('tempdb..#tbl') IS NOT NULL
BEGIN
DROP TABLE #tbl
END
-- Assumptions
-- 1) Field2 <= Field3
-- 2) Valid ranges for Field2 and Field3 are in the expected format and between [2000, 2099]
-- 3) Field1 values can be converted to valid dates between [1/1/2000, 12/31/2099]
-- 4) You are unable to implement a more appropriate design to the table at this time
-- Create some test data
CREATE TABLE #tbl (
Field1 VARCHAR(8),
Field2 VARCHAR(4),
Field3 VARCHAR(4)
)
INSERT INTO #tbl(Field1, Field2, Field3)
VALUES('20120908', '4Q12', '1Q13') -- Field1 is before range
, ('20121108', '4Q12', '1Q13')-- Field1 is in range
, ('20130408', '4Q12', '1Q13')-- Field1 is after range
-- Test select
SELECT *
FROM #tbl
WHERE RIGHT(LEFT(Field1, 4), 2) + 'Q' + CAST((MONTH(CONVERT(DATE, Field1, 112)) - 1) / 3 + 1 AS VARCHAR)
BETWEEN RIGHT(Field2, 2) + 'Q' + LEFT(Field2, 1) AND RIGHT(Field3, 2) + 'Q' + LEFT(Field3, 1)