在SQL Server 2000环境下:
我要写这样一个函数:
stringToDate(@strDate) , @strDate是字符串, 返回smalldatetime类型的值, 1. 如果@strDate能正常转换成日期类型, 则返回转换后的日期类型;
2. 否则转换失败的话, 返回null
上面第二点应该怎么实现? 谢谢.

解决方案 »

  1.   

    ISDATE
    确定输入表达式是否为有效的日期。语法
    ISDATE ( expression ) 参数
    expression一个表达式,将要验证它是否为一个日期。expression 是任何返回 varchar 数据类型的表达式。 返回类型
    int注释
    如果输入表达式是有效的日期,那么 ISDATE 返回 1;否则,返回 0。下表显示一组示例所得到的返回值。
      

  2.   

    create Function stringToDate(@aa varchar(100))
    returns datetime
    as
    begin
    declare @str datetime if isdate(@aa)>0
    select @str = convert(datetime,@aa) return @str
    end
      

  3.   

    create function fname (@str varchar(50))
    returns smalldatetime
    as
    beginif isdate(@str)=1
    begin
    declare @temp smalldatetime
    declare @flag char(10)
    set @temp=cast(@str as smalldatetime)
    endelse
    begin
    set @temp=null
    end
    return @temp
    end
    select tempdb.dbo.fname('asd')
    -----
    NULL
    select tempdb.dbo.fname('2007-01-02')
    ----
    2007-01-02 00:00:00