首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

在标量值函数中怎么检测出一个字符串能否转换成日期

2012-09-14 
在标量值函数中如何检测出一个字符串能否转换成日期写一个标量值函数可以检查传入的字符串能否转换成日期

在标量值函数中如何检测出一个字符串能否转换成日期
写一个标量值函数可以检查传入的字符串能否转换成日期类型

参数1: @年=‘2012’
参数2: @日期='8-1 12:0'

把两年字符串拼接在一起 cast(@年+@日期 as datetime) 这样直接转换在参数2正确的情况下可以成功转换,因客户的数据中@日期 经常有错的如 '13-1 1:2' 或 '8-1 70:90' 这样, 此时再用上面的方面就出转换出错了。

什么办法可以解决这种出错的, 出错了可以直接返回空值就可以, 转换成功时就返回成功的字符串

[解决办法]

SQL code
create function fn_isdate(    @年 varchar(10),    @日期 varchar(20))returns varchar(30)asbegin    if(isdate(@年+'-'+@日期)=1)        return convert(varchar(30),cast(@年+'-'+@日期 as datetime),120)    else        return null    return ''endselect dbo.fn_isdate('2012','8-1 12:0')/*2012-08-01 12:00:00*/select dbo.fn_isdate('2011','13-1 1:2')select dbo.fn_isdate('2012','8-1 70:90')/*NULL*/ 

热点排行