Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何在sql server中减去varchar数据类型时间_Sql Server 2008_Sql Server 2005 - Fatal编程技术网

Sql server 2008 如何在sql server中减去varchar数据类型时间

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

我有两列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(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
数据类型!可能重复的