我在sql server 2012中有一个表,其中一列的时间数据类型具有以下数据,如何将00:45:00转换为0.45或01:45:00为1.45?
请帮忙.
你可以做算术,如:
 select cast(datepart(hour, col) + datepart(minute, col) / 100.00 as decimal(5, 2));
但正如评论中所指出的那样,"1.45"似乎令人困惑.大多数人认为这应该是"1.75".如果你想要后者 - 精确到分钟 - 你可以这样做:
 select cast(datepart(hour, col) + datepart(minute, col) / 60.00 as decimal(5, 2));
你知道 1:45:00 的十进制值是 1.75h
如果您想将时间转换为十进制,请尝试此操作
select  datediff(second,0,'01:45:00') / (60.0 * 60.0)
但是,如果您按照您的要求获得价值,那么请尝试这种方式
select cast(datepart(hour, '01:45:00')+datepart(minute, '01:45:00') / 100.00 as decimal(7,4));
| 归档时间: | 
 | 
| 查看次数: | 11314 次 | 
| 最近记录: |