Sql server 2008 如何在sql server中减去varchar数据类型时间
我有两列INTIME,OUTTIME为09:03:01为INTIME,OUTTIME为18:06:00为OUTTIME。这些列的数据类型为varchar类型。现在我想计算OUTTIME减去INTIME之间的持续时间,然后我需要得到9:02:59的持续时间,只需减去它们:Sql server 2008 如何在sql server中减去varchar数据类型时间,sql-server-2008,sql-server-2005,Sql Server 2008,Sql Server 2005,我有两列INTIME,OUTTIME为09:03:01为INTIME,OUTTIME为18:06:00为OUTTIME。这些列的数据类型为varchar类型。现在我想计算OUTTIME减去INTIME之间的持续时间,然后我需要得到9:02:59的持续时间,只需减去它们: DECLARE @INTIME DATETIME, @OUTTIME DATETIME SELECT @INTIME = CONVERT(DATETIME,'09:03:01'), @OUTTIME = CONVERT(DATE
DECLARE @INTIME DATETIME, @OUTTIME DATETIME
SELECT @INTIME = CONVERT(DATETIME,'09:03:01'), @OUTTIME = CONVERT(DATETIME,'18:06:00')
SELECT CONVERT(VARCHAR(10),@OUTTIME - @INTIME,108)
输出:
09:02:59
试试这个。愿这对你有帮助
select CONVERT(CHAR(8),DATEADD(second,datediff(second, cast('09:03:01' as datetime),cast('18:06:00' as datetime)),0),108) as duration
在线查看这个
-不应该将日期存储为字符串-那样只会自找麻烦。使用DATE
或DATETIME
数据类型!可能重复的