按每个值更新列

时间:2013-01-31 10:13:02

标签: sql-server-2008-r2 sql-update

下面是我的表格,其持续时间为HH:MM:SS

My Table

我可以通过

将其转换为秒
SELECT  (SUBSTRING(CAST('00:01:15' AS NVARCHAR(MAX)),1,2) * 360) 
+ (SUBSTRING(CAST('00:01:15' AS NVARCHAR(MAX)),4,2) * 60) 
+  SUBSTRING(CAST('00:01:15' AS NVARCHAR(MAX)),7,2)

现在我需要通过读取每一行记录来将该表更新为秒?

而不是'00:01:15'我需要每一行@DURATIONINSECONDS

1 个答案:

答案 0 :(得分:0)

尝试以下

如果您的表格有这样的价值

<强>表1

DurationInSeconds
00:01:15    
00:00:15    
00:01:16    
00:01:17

并且您希望将字段 DurationInSeconds 更新为Seconds ...

然后尝试下面的查询......

update Table1 set DurationInSeconds = (SUBSTRING(CAST(DurationInSeconds AS NVARCHAR(MAX)),1,2) * 360) + (SUBSTRING(CAST(DurationInSeconds AS NVARCHAR(MAX)),4,2) * 60) +  SUBSTRING(CAST(DurationInSeconds AS NVARCHAR(MAX)),7,2)

然后它给出如下结果

SELECT * from Table1

DurationInSeconds
75
15
76
77