You don't need to use Cast at all, but as you have found out, you CANNOT use the column alias in the WHERE clause.set nocount oncreate table [#PRODUCT ORDER] (record_date varchar(30))insert [#PRODUCT ORDER] values ('26/04/2002')insert [#PRODUCT ORDER] values ('26/03/2552')Select right(record_date,4)+'-'+ right(left(record_date,5),2)+'-'+ left(record_date,2) as c_date From [#PRODUCT ORDER] Where right(record_date,4)+'-'+ right(left(record_date,5),2)+'-'+ left(record_date,2) > '2545-02-25' -- this works too; uses the substring functionSelect right(record_date,4) + '-' + substring(record_date,4,2) + '-' + left(record_date,2) as c_date From [#PRODUCT ORDER] Where right(record_date,4) + '-' + substring(record_date,4,2) + '-' + left(record_date,2) > '2545-02-25' drop table [#PRODUCT ORDER] -- outputc_date ---------- 2552-03-26c_date ---------- 2552-03-26