Sql nvarchar提取字符串的一部分

Sql nvarchar提取字符串的一部分,sql,sql-server-2008,Sql,Sql Server 2008,所以我有一个varchar,在'hhh:MM:SS'中保存事件的持续时间 所以我希望按小时过滤,所以我只想得到HHHH, 我想做一个子字符串(持续时间,1,4),但我不确定如何让它在结肠处停止,因为我们可以得到少于四个小时的时间,例如“7:07:47”或“29:30:01”。什么都行,谢谢大家 您应该改用时间数据类型。但无论如何,下面是您想要的代码: DECLARE @YourTime VARCHAR(10) SET @YourTime = '29:30:01' SELECT LEFT(@Yo

所以我有一个varchar,在'hhh:MM:SS'中保存事件的持续时间 所以我希望按小时过滤,所以我只想得到HHHH,
我想做一个子字符串(持续时间,1,4),但我不确定如何让它在结肠处停止,因为我们可以得到少于四个小时的时间,例如“7:07:47”或“29:30:01”。什么都行,谢谢大家

您应该改用
时间
数据类型。但无论如何,下面是您想要的代码:

DECLARE @YourTime VARCHAR(10)
SET @YourTime = '29:30:01'

SELECT LEFT(@YourTime,CHARINDEX(':',@YourTime,0)-1)

您应该改用
时间
数据类型。但无论如何,下面是您想要的代码:

DECLARE @YourTime VARCHAR(10)
SET @YourTime = '29:30:01'

SELECT LEFT(@YourTime,CHARINDEX(':',@YourTime,0)-1)

但它不是真的,因为我们可以有“1234:13:13”,它是一个持续时间,所以没有转换为日期时间。。或者我看错了吗?但这不是真的,因为我们可以有“1234:13:13”,这是一个持续时间,所以没有转换到日期时间。。还是我看错了?