我在sql server 2012中有一个表,其中一列有时间数据类型中的以下数据, 如何将00:45:00转换为0.45 或01:45 :00到1.45?在SQL Server 2012中将时间转换为十进制2012
请大家帮忙。
我在sql server 2012中有一个表,其中一列有时间数据类型中的以下数据, 如何将00:45:00转换为0.45 或01:45 :00到1.45?在SQL Server 2012中将时间转换为十进制2012
请大家帮忙。
从这个问题来看,你似乎只想用'。'去除':'。如果是这样,可以在sql server 2012中以多种方式实现。下面是一个例子。
如果列是 '日期时间',使用此: SELECT REPLACE(LEFT(CAST(DatetimeCol随着时间),5), ':', '')FROM TBL
否则,如果它只是'时间“然后移除铸件。
谢谢@anonxen。您的解决方案奏效万分感谢。 – 2014-08-27 11:38:07
你可以做算术题,如:
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));
这应该是被接受的答案。此外,如果您想根据分钟进行操作,您可以这样做: select datediff(分钟,0,'01:45:00')/ 60.0 – ejcortes 2015-12-02 19:14:34
也许你可以做一个ATT抢先? – 2014-08-27 11:22:57
只是一个问题,你知道1:45:00的十进制值是1.75h? :) – 2014-08-27 11:23:34
你可以使用DATEPART(),然后实现自己的逻辑.... – Mithrandir 2014-08-27 11:23:44