Question on the Data Type Conversion chart

  • found here: https://msdn.microsoft.com/en-us/library/ms191530.aspx

    I had assumed that, when the grid cell is Explicit (blue filled-in square), that meant that any comparison between those two data types needed to involve explicitly CASTing/CONVERTing one to the other. Then I started testing.

    My first test was XML to nvarchar. The chart indicates an explicit conversion type. I tested it, and indeed, my test example fails:

    declare @lhvar xml = '<root><element>4</element></root>';

    declare @rhvar nvarchar(100) = '<root><element>4</element></root>';

    print

    case

    when @lhvar = @rhvar then 1

    else 0

    end

    Msg 402, Level 16, State 1, Line 29

    The data types xml and nvarchar are incompatible in the equal to operator.

    Then I started trying some other combinations listed as Explicit:

    declare @lhvar datetime = datefromparts(1900,1,1);

    declare @rhvar money = 0;

    print

    case

    when @lhvar = @rhvar then 1

    else 0

    end

    1

    declare @lhvar hierarchyid = '/1/10/';

    declare @rhvar varchar(10) = '/1/10/';

    print

    case

    when @lhvar = @rhvar then 1

    else 0

    end

    1

    This grid has been up since forever, so I feel like I must be understanding it wrong. Can someone help clarify?

    Thanks very much.

  • datetime to money and hierarchyid to varchar are listed as implicit...

    sorry, got those round the wrong way...

    money to datetime and varchar to hierarchyid are both implicit, so that is what is happening...

    MM



    select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);

  • Forum Etiquette: How to post Reporting Services problems
  • [/url]
  • Forum Etiquette: How to post data/code on a forum to get the best help - by Jeff Moden
  • [/url]
  • How to Post Performance Problems - by Gail Shaw
  • [/url]

Viewing 2 posts - 1 through 1 (of 1 total)

You must be logged in to reply to this topic. Login to reply