You can change the datatype of the column with ALTER statement. You may think that it will never change the column values. But there are some cases where altering a datatype can cause changing the value of the column. Consider the following table
create table test(id int, dates varchar(100))
insert into test
select 1,'' union all
select 2,'' union all
select 3,null
select * from test
The result is
id dates
----------- ------------
1
2
3 NULL
Now alter the datatype of the column dates to datetime
alter table test alter column dates datetime
Run the select statement and see the result
select * from test
id dates
----------- -----------------------
1 1900-01-01 00:00:00.000
2 1900-01-01 00:00:00.000
3 NULL
As you see the empty values are chaged to default value of Jan 01, 1900. Because empty strings are converted to the default values when the datatype is INT, DATETIME, BIGINT stc. You can see more examples in the following post too
http://beyondrelational.com/blogs/madhivanan/archive/2008/09/02/empty-string-and-default-values.aspx