No te sirve de esta manera:
Código SQL:
Ver originalCREATE TABLE #temp(año INT,mes INT, dia VARCHAR(10))
INSERT INTO #temp (año,mes,dia) VALUES (2014,11,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2012,12,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,1,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,2,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,3,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,4,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,5,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,6,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,7,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,8,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,9,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,10,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,11,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2015,12,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2016,1,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2016,2,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2016,3,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2016,4,'01')
INSERT INTO #temp (año,mes,dia) VALUES (2016,5,'01')
SELECT * FROM(
SELECT CONVERT(datetime,(CONVERT(VARCHAR(10),año) + '-' + CONVERT(VARCHAR(10),mes) + '-' + dia )) AS fecha FROM #temp
) t1 WHERE fecha BETWEEN '2014-05-01' AND '2016-08-01'
Saludos!