• Please try:

    declare @k int;

    select

    case when @k=0 OR NOT (@k = 0)

    then cast(0 as date)

    else cast('2012-04-01T10:00:00' as datetime)

    end as [when] ;

    and

    declare @k int;

    select

    case when @k=0 OR NOT (@k = 0)

    then cast('04/01/2012T10:00:00' as date)

    else cast('2012-04-01T10:00:00' as datetime)

    end as [when] ;

    --------------------------------------
    ;-)“Everything has beauty, but not everyone sees it.” ― Confucius