我在sql server 2012中有一个表,其中一列的时间数据类型如下,您如何将00:45:00转换为0.45或将01:45:00转换为1.45?
请帮帮忙。
发布于 2014-08-27 19:26:12
从问题看,你似乎只想用'.‘去掉':’。如果是这样,在SQL Server 2012中可以通过多种方式来实现。下面是一个例子。
如果您的列是“Datetime”,请使用以下内容:
SELECT REPLACE(LEFT(CAST(DatetimeCol AS TIME),5),':',',') FROM Tbl否则,如果只是“时间”,那么删除强制转换。
发布于 2014-08-27 19:30:30
你可以做如下算术运算:
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));发布于 2014-08-27 19:32:53
你知道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));https://stackoverflow.com/questions/25525845
复制相似问题