Try this:
DECLARE @Seasons TABLE(SeasonID INT IDENTITY(1,1), SeasonName VARCHAR(30), FromDate DATETIME, ToDate DATETIME)
INSERT INTO @Seasons(SeasonName, FromDate, ToDate)
VALUES('SEASON1', '2014-01-01', '2014-04-30'),
('SEASON2', '2014-05-01', '2014-08-31'),
('SEASON3', '2014-09-01', '2014-12-31'),
('SEASON4', '2015-01-01', '2015-04-30'),
('SEASON5', '2015-05-01', '2015-08-31'),
('SEASON6', '2015-09-01', '2015-12-31')
SELECT *
FROM @Seasons
DECLARE @sDate DATETIME
DECLARE @eDate DATETIME
SET @sDate = '2014-01-15'
SET @eDate = '2014-12-20'
SELECT SeasonID, SeasonName, FromDate, ToDate, startDate, endDate, DATEDIFF(DAY,startDate,endDate) + 1 AS NoOfDays
FROM (
SELECT SeasonID, SeasonName, FromDate, ToDate,
startDate = CASE
WHEN FromDate<@sDate THEN @sDate
WHEN FromDate>=@sDate THEN FromDate
END,
endDate = CASE
WHEN ToDate <= @eDate THEN ToDate
WHEN ToDate>@eDate THEN @eDate
END
FROM @Seasons
) AS T
WHERE DATEDIFF(DAY,startDate,endDate)>0