从Hhh:mm:ss中删除总天数

时间:2014-08-25 16:52:51

标签: sql-server tsql sql-server-2012

我有一个varchar字段,用于存储偶尔进入日期的连接的持续时间。我正在尝试将hh:mm:ss中的总天数分开,因此我可以将它们分开存储,但每当我尝试将此数据转换为任何类型的日期时间变化时,我都会出现超出范围的错误为了date从价值的日期,然后扣除。他们是这样做的任何方式还是我需要求助于粗略的charindex(':'只是为了消除这些日子?

1 个答案:

答案 0 :(得分:1)

你必须把它砍掉,因为它不是有效的日期或时间格式:

DECLARE @timeString VARCHAR(50) = '114:48:50'
SELECT   Day_CT = LEFT(@timeString ,CHARINDEX(':',@timeString )-1)/24
        ,Tm = CAST(CAST(LEFT(@timeString ,CHARINDEX(':',@timeString )-1)%24 AS VARCHAR(12))+STUFF(@timeString ,1,CHARINDEX(':',@timeString )-1,'') AS TIME)

这是日期和时间不应存储在字符串数据类型中的众多原因之一,它使得使用它们很难看。