SQL - use variable as column in SELECT statement and WHERE clause Can any one please support me with below problem

I want to use Variable column name in Select Statement.
But when I give variable - its giving out put of Column Name itself

Note : My data in column is INT but Column Heading is Varchar.

Please refer attached Image for Code &amp; Results ( Expected &amp; Current )

Code :

Alter Procedure dbo.dayplanv00
(
@dt as varchar(255) = '[15-04-2017]',
@fg as nvarchar(255)= 'XC 1 IEC'
)
as
begin
Select [15-04-2017] as dt from RollingPlanWK15 where FNGD = 'XC 1 IEC'
END

Execute dbo.dayplanv00
You need to use dynamic sql to use variables as column names, try:

ALTER PROCEDURE dbo.dayplanv00 (
    @dt nvarchar(255) = '[15-04-2017]'
    ,@fg nvarchar(255)= 'XC 1 IEC'
)
AS
BEGIN
    DECLARE @sql nvarchar(200)= 'Select ' + @dt + ' as dt from RollingPlanWK15 where FNGD = ''' + @fg + ''''
    EXEC sp_executesql @sql
END


Note, are you wanting those default values in there? would make more sense (in my opinion) to have it as a required field on the execution of the proc so you don't accidentally run it with no values and presume its right