gpt4 book ai didi

sql-server - TSQL UDF每8个字符拆分字符串

转载 作者:行者123 更新时间:2023-12-03 15:23:05 25 4
gpt4 key购买 nike

有人决定将一堆时间放在一个列中,因此列值可能如下所示:

08:00 AM01:00 PM

另一列包含以下格式的日期;
20070906

我想编写一个 UDF 以在单个 SQL 查询中规范化这些数据,因此我可以为上述示例取回 2 行日期时间类型
2007-09-06 08:00:00.000
2007-09-06 13:00:00.000

转换为 datetime 类型很简单……但我需要每 8 个字符分割一次时间部分以获得单独的超时。

任何人都知道现有的 UDF 可以做到这一点?

最佳答案

试试这个,它会把你的字符串分成指定长度的块:

create function SplitString
(
@str varchar(max),
@length int
)
returns @Results table( Result varchar(50) )
AS
begin
declare @s varchar(50)
while len(@str) > 0
begin
set @s = left(@str, @length)
set @str = right(@str, len(@str) - @length)
insert @Results values (@s)
end
return
end

例如:
select * from dbo.SplitString('08:00 AM01:00 PM', 8)

会给出这样的结果:

结果

08:00 上午

01:00 下午

关于sql-server - TSQL UDF每8个字符拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com