在C#中用惯了DateTime.ToString("yyyy-MM-dd"),DateTime.ToString("MM/dd/yyyy")这种日期与字符串的转换方式,在SQL server中没得用,于是乎写了个FUNCTION,功能跟.net 中的DateTime.ToString("formatprovide")方法差不多,不过只实现了日期部分,有兴趣的朋友可以把时间部分补充出来。

create function fn_DateToString(@date datetime@format varchar(20))
returns varchar(20)
as
begin
    
declare @result varchar(20)
    
select @result = (replace(replace(replace(@format,'yyyy','20'+substring(convert(char(8),@date,3),7,2)),'MM',substring(convert(char(8),@date,3),4,2)),'dd',substring(convert(char(8),@date,3),1,2)))
    
return @result
end


 

使用:


select dbo.fn_datetostring(getdate(),'yyyy-MM-dd')


得到结果:2005-07-12