我的问题是:的SQL Server 2008+:模数和十进制/数字数据类型
是它与T-SQL decimal
或numeric
数据类型使用模运算%
相结合的有效运行。
这似乎只要我测试过它的工作,但是这实际上是decimal
值的预期的行为像SELECT 2.0 % 0.4
导致0.0
,我可以依靠?
我的想法是创建这样一个查询:
SELECT itemNumber
FROM item i
JOIN orderItem oi ON i.ID = oi.itemID
WHERE oi.orderID = @orderID
AND oi.amount % i.amount <> 0.0000
实际上,我是惊讶的是,它似乎工作。这是预期的行为?
我曾期待只有为整数值工作,并准备使用不同的东西。
对于背景:
我们卖的是一些以米为单位的预包装形式我们的东西。数据库中的数据字段为numeric(18,4)
值,一些预打包单元打包为十进制值。现在我必须创建一个程序来检查销售的商品是否是预先包装的单位的倍数,确定是否可以发送有效数量的预先包装物品,如果需要适当地切割物品。
随着数字(18,4)的精度应该是足够高的,我认为? – Adwaenyth
@Adwaenyth它取决于你的环境,如果你测量'量'吨 - 你应该增加更多的数字在右侧,如果你使用克,我认为,这已经足够了 – Backs
它实际上是米。 – Adwaenyth