实现目的:'199天4小时19分0秒'; 转 INT 类型的秒 只适用于简单字符串截取 如果有更复杂的源字符串 须慎用
USE [Mobje_Data]
GO
/****** Object: UserDefinedFunction [dbo].[func_FindText] Script Date: 2021/1/24 9:31:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[func_FindText](@qianzi_Str VARCHAR(200),@houzui_Str VARCHAR(200),@Str varchar(8000))
RETURNS VARCHAR(50)
as
BEGIN
declare @result_str VARCHAR(200)
--DECLARE @str VARCHAR(50) = '99天4小时19分0秒';
--DECLARE @qianzi_Str VARCHAR(50) ='分'
--DECLARE @houzui_Str VARCHAR(50) ='秒'
DECLARE @startStrIndex INT --起始位置 前缀+前缀的长度 99的前缀 是0
DECLARE @endStrIndex INT --结束字符串位置
SELECT @startStrIndex=CHARINDEX(@qianzi_Str,@str)+LEN(@qianzi_Str);
SELECT @endStrIndex=CHARINDEX(@houzui_Str,@str)
SELECT @result_str= SUBSTRING(@str, @startStrIndex, @endStrIndex - @startStrIndex);
RETURN @result_str
END
SELECT dbo.func_FindText('', '天', '199天4小时19分0秒');
SELECT dbo.func_FindText('天', '小时', '199天4小时19分0秒');
SELECT dbo.func_FindText('小时', '分', '199天4小时19分0秒');
SELECT dbo.func_FindText('分', '秒', '199天4小时19分0秒');
这个博客分享了一个SQL用户定义函数,用于从包含时间描述的字符串中提取并转换成秒数。该函数适用于简单的字符串格式,例如'199天4小时19分0秒'。通过指定前缀和后缀,可以提取中间的时间值。
7828





