一条字符串转换成秒函数

今天一朋友问这样的问题:
如:
一张表中有一列数据为
40秒
1分30秒
3小时45分29秒
现在上面的几行转换成可统计的数据,为了统计方便可以都转换成秒。

解决方法如下:
GO
CREATE FUNCTION StringToSecond(@string nvarchar(100))
    RETURNS int
BEGIN
    DECLARE @Return int
    DECLARE @i int
    SET @i=CHARINDEX('小时',@string)
    SET @Return=0
    IF @i>=1
        SELECT @Return=LEFT(@string,@i-1)*60*60,@string=RIGHT(@string,LEN(@string)-@i-1)
    
    SET @i=CHARINDEX('分',@string)
    IF @i>=1
        SELECT @Return=@Return+LEFT(@string,@i-1)*60,@string=RIGHT(@string,LEN(@string)-@i)
    
    SET @i=CHARINDEX('秒',@string)
    IF @i>=1
        SELECT @Return=@Return+LEFT(@string,@i-1),@string=RIGHT(@string,@i)
    RETURN @Return
END

GO

declare @d nvarchar(30)

SET @d='3小时45分29秒'
SELECT dbo.StringToSecond(@d)
SET @d='1分30秒'
SELECT dbo.StringToSecond(@d)
SET @d='40秒'
SELECT dbo.StringToSecond(@d)

GO
DROP FUNCTION StringToSecond




posted @ 2008-02-16 11:25  ok_008  阅读(700)  评论(0编辑  收藏  举报
给我写信