none
请问怎麽判断一个数的数据类型 RRS feed

答案

  • By the way, 'select isnumeric ...' can't tell data type either. Try following, same result:

    select isnumeric(1), isnumeric('1'), isnumeric(N'1')

    2012年10月12日 2:57
  • 至于 ISNUMERIC  ISDATE, 这种是判断是否可以转换为相应的类型,2012之前的版本就只这些了

    2012新增了 TRY_convert 和 try_parse,具体的可以看下相应的语法说明

    2012年10月12日 3:44

全部回复

  • You can tell what's data type of '1' because N is not required in select statement for unicode,
    2012年10月12日 2:34
  • By the way, 'select isnumeric ...' can't tell data type either. Try following, same result:

    select isnumeric(1), isnumeric('1'), isnumeric(N'1')

    2012年10月12日 2:57
  • 我的示例中不是有么? 使用 SQL_VARIANT_PROPERTY 函数

    2012年10月12日 3:36
  • 至于 ISNUMERIC  ISDATE, 这种是判断是否可以转换为相应的类型,2012之前的版本就只这些了

    2012新增了 TRY_convert 和 try_parse,具体的可以看下相应的语法说明

    2012年10月12日 3:44
  • ISNUMERIC ISDATE判断是否可以转换,我在网上查到的都是判断数据类型,被网上误导了

    给我写信: QQ我:点击这里给我发消息

    2012年10月12日 5:43
  • 做了一下测试

    --隐式的定义  结果:varchar
    DECLARE @a  SQL_VARIANT
    SET @a='a'
    SELECT SQL_VARIANT_PROPERTY(@a,'basetype')

    --显式的定义  结果:nvarchar
    DECLARE @b NVARCHAR(10)
    SET @b='a'
    SELECT SQL_VARIANT_PROPERTY(@b,'basetype')
    --
    --
    --------------------------------------------------
    --隐式的定义  结果:int
    DECLARE @c  SQL_VARIANT
    SET @c=1
    SELECT SQL_VARIANT_PROPERTY(@c,'basetype')

    --显式的定义  结果:int
    DECLARE @d INT
    SET @d=1
    SELECT SQL_VARIANT_PROPERTY(@d,'basetype')

    -----------------------------------------------
    --隐式的定义  结果:numeric
    DECLARE @e  SQL_VARIANT
    SET @e=1.1
    SELECT SQL_VARIANT_PROPERTY(@e,'basetype')

    --显式的定义  结果:decimal
    DECLARE @f DECIMAL(8,2)
    SET @f=1.1
    SELECT SQL_VARIANT_PROPERTY(@f,'basetype')

    -----------------------------------------------------
    --隐式的定义  结果:varchar
    DECLARE @g  SQL_VARIANT
    SET @g='2012-10-10'
    SELECT SQL_VARIANT_PROPERTY(@g,'basetype')

    --隐式的定义  结果:varchar
    DECLARE @h  SQL_VARIANT
    SET @h='2012-10-10 10:10:10'
    SELECT SQL_VARIANT_PROPERTY(@h,'basetype')

    --显式的定义  结果:datetime
    DECLARE @i DATETIME
    SET @i='2012-10-10'
    SELECT SQL_VARIANT_PROPERTY(@i,'basetype')



    给我写信: QQ我:点击这里给我发消息


    2012年10月12日 6:12