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