当前位置: 代码迷 >> Sql Server >> 在标量值函数中怎么检测出一个字符串能否转换成日期
  详细解决方案

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

热度:82   发布时间:2016-04-27 11:20:33.0
在标量值函数中如何检测出一个字符串能否转换成日期
写一个标量值函数可以检查传入的字符串能否转换成日期类型

参数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*/
  相关解决方案