SQL Server:将数字转换为十进制

时间:2015-08-08 14:35:42

标签: sql sql-server sql-server-2008

我有一个以秒为单位表示值的列。该栏的结果如(465109,352669,351949 ......等)。我需要结果总是小数而不是一。所以465109的结果应该是0.465109,同样352669应该是0.352669。

我能在SQL Sever 2008中做到这一点吗?

DATEDIFF(SECOND,StartDate,GETDATE())

3 个答案:

答案 0 :(得分:1)

你能用分裂吗?

select seconds / 1000000.0

注意.0所以它进行浮点除法而不是整数除法。

如果你想要这些作为小数,那么之后施放:

select cast(seconds / 1000000.0 as decimal(10, 6))

答案 1 :(得分:0)

这是一个诀窍:

CAST('.' + REPLACE(CAST(@value AS varchar(30)), '.', '') AS Numeric(28,10))

作为数学解决方案:

CAST(@valueAS Numeric(28,10)) / (POWER(10, LEN(CAST(FLOOR(@value) AS varchar(20)))))

答案 2 :(得分:0)

datediff

您可以通过将import re print(re.sub('(?<="number_of_shares":)\d+?',"3",string)) 函数返回的整数长度除以10的幂来尝试此操作。