SQL服务器中的内置函数

问题描述:

SQL服务器中是否有任何内置函数来查找给定值是整数还是货币,日期还是小数?SQL服务器中的内置函数

那么有ISDATE()和ISNUMERIC()。你需要做什么?

+0

我想要内置函数来查找int,货币和小数。 – susanthosh 2010-02-09 11:47:01

+1

粘贴一些示例代码,我们无法制定出你想要的。 – Codesleuth 2010-02-09 12:05:46

如果你正在处理一个SQL_VARIANT,使用内置SQL_VARIANT_PROPERTY功能:

SELECT SQL_VARIANT_PROPERTY(@value,'BaseType') AS 'Base Type' 

有没有真正的内置功能,如你所期待的。 唯一的选择是查询sysobjects,syscolumns和systypes(SQL 2000)。

select 
    obj.name, 
    col.name, 
    typ.name 
From dbo.sysobjects obj 
    Inner Join dbo.syscolumns col 
     On col.id = obj.id 
    Inner Join dbo.systypes typ 
     On typ.xusertype = col.xusertype 

此查询将列出所有表及其列和它们的类型。货币将是货币类型,小数点是数字。在列表中,您可以找到数字的精度和比例。

+0

-1为虚假陈述,+1为非常有用的答案。正如我在我的回答中所述,有些功能可以做他正在寻找的东西。他们可能不会做他想要的一切 - 然后你的回答可以以非标准的方式提供帮助。 – Hogan 2010-02-09 13:29:28

+0

IsDate我绝对有监督,但请你可以启发IsNumeric如何能够区分数字,金钱和整数类型? 这是原始问题,因此我添加了“...就像您正在查找的那样”,因为IsMoney,IsInteger或IsNumeric没有功能(仅感测数字类型,而不是验证数字)。 – KMB 2010-02-09 17:48:24

+0

但是这不会查看varchar字段中的数据,并告诉您是否是整数。这就是大多数人问这样的问题希望能够做到的。 – HLGEM 2010-02-11 19:22:49