【发布时间】:2009-01-24 03:43:19
【问题描述】:
我使用 SQL Server 2005 并且需要测试已将元数据指定为 DECIMAL(18.3) 的列中的值是否实际上包含具有小数点右侧的值的数据,如果是,这些值是什么。
我读过几篇文章,它们只讨论如何去掉小数位或如何舍入值,而不是如何只显示小数点右侧存储的内容。
非常感谢您的帮助。
亲切的问候,
伊格纳西奥。
【问题讨论】:
标签: sql-server sql-server-2005
我使用 SQL Server 2005 并且需要测试已将元数据指定为 DECIMAL(18.3) 的列中的值是否实际上包含具有小数点右侧的值的数据,如果是,这些值是什么。
我读过几篇文章,它们只讨论如何去掉小数位或如何舍入值,而不是如何只显示小数点右侧存储的内容。
非常感谢您的帮助。
亲切的问候,
伊格纳西奥。
【问题讨论】:
标签: sql-server sql-server-2005
试试:
SELECT a - FLOOR(a)
FROM ...
【讨论】:
SELECT decimalnumber - FLOOR(decimalnumber) AS decimalpart
FROM mytable
WHERE decimalnumber - FLOOR(decimalnumber) > 0
【讨论】:
这可能并不总是按您期望的方式工作。当您有负数时会出现问题。您可以将 FLOOR 视为一种舍入类型,它总是向下舍入到下一个整数。地板(3.14)= 3,地板(-3.14)= -4。
要获取小数点后数字的值,可以使用 ParseName 函数,该函数适用于正数和负数。
Select ParseName(-3.9876, 1)
Select ParseName(-3.1234, 1)
Select ParseName(3.9876, 1)
Select ParseName(3.1234, 1)
【讨论】: