我有一个nvarchar字段,它存储一个与时间相关的值。
prophet
有关如何将其转换为可用/可用字段进行计算的任何建议吗?
SQL'time'仅允许最多23:59:59,因此存储为nvarchar。
非常感谢提前。
答案 0 :(得分:0)
字符串数据类型不是数字信息的好方法。在这种情况下,从秒开始处理将使输出成为h:m:s单位,但反过来是一个丑陋的问题。
MS SQL Server 2014架构设置:
CREATE TABLE Table1
([badcolumn] varchar(9), [num_secs] int)
;
INSERT INTO Table1
([badcolumn])
VALUES
('104:45:50'),
('99:45:50')
;
查询1 :
select
badcolumn, (h*3600)+(m*60)+s as num_seconds
from table1
cross apply (
select
charindex(':',badcolumn) x
, charindex(':',badcolumn, charindex(':',badcolumn)+1) y
) ca1
cross apply (
select
try_cast(substring(badcolumn,1,x-1) as int) h
, try_cast(substring(badcolumn,x+1,y-x-1) as int) m
, try_cast(substring(badcolumn,y+1,20) as int) s
) ca2
<强> Results 强>:
| badcolumn | num_seconds |
|-----------|-------------|
| 104:45:50 | 377150 |
| 99:45:50 | 359150 |