今天一朋友问这样的问题:
如:
一张表中有一列数据为
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




相关文章:

  • 2022-02-08
  • 2021-12-18
  • 2022-01-07
  • 2021-08-02
  • 2022-12-23
  • 2022-12-23
  • 2021-11-24
  • 2022-12-23
猜你喜欢
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
  • 2021-12-17
相关资源
相似解决方案