我在sql server 2012中有一个表,其中一列的时间数据类型包含以下数据, 你怎么把00:45:00兑换成0.45 还是01:45:00到1.45?
请帮忙。
答案 0 :(得分:5)
你可以做算术,如:
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 :(得分:4)
你知道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));
答案 2 :(得分:1)
从问题来看,似乎你只想用'。'删除':'。如果是这样,它可以在sql server 2012中以多种方式实现。下面是一个例子。
如果您的列是“日期时间”,请使用以下命令: SELECT REPLACE(LEFT(CAST(DatetimeCol AS TIME),5),':',',')FROM Tbl
否则,如果它只是'时间',那么删除铸件。