我们都知道
IsDate能够判断指定的字符串能否转化为有效日期,但它不能判断指定字符串能否转化提定格式的有效日期。
比如,我要判断指定的字符串能否转化为yyyyMMdd这种格式的有效日期,
IsDate函数就不能胜任了,因为
select isDate('2005')返回结果也是为1的,而显然'2005',不是我们想要的有效日期格式。
下面我们创建一个简单的自定义函数来判断指定字符串能否转化为yyyyMMdd这种格式的有效日期:
/*
创建人:WYF
创建时间:2011-8-8
功能描述:判断传入字符串是否能转换为yyyyMMdd的日期格式
*/
create function fn_IsDate(@datestring varchar(50))
returns bit
as
begin
declare @length int
set @length=len(@datestring)
if(@length!=8)
begin
return convert(bit,0)
end
else
begin
return isdate(@datestring)
end
return 0
end