Conversion failed when converting the nvarchar value '7.5' to data type int





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







-1















When inserting NVARCHAR containing a float value '7.5' into an INT column we get:




Conversion failed when converting the nvarchar value '7.5' to data type int.




Code:



DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

CREATE TABLE #TableWithInt (col1 INT)

INSERT INTO #TableWithInt
SELECT @FloatAsString col1

SELECT * FROM #TableWithInt


It looks like T-SQL doesn't support casting a FLOAT string literal '7.5' to an INT without first converting it into a FLOAT, or cutting the trailing decimal values off.



Is there a workaround?










share|improve this question































    -1















    When inserting NVARCHAR containing a float value '7.5' into an INT column we get:




    Conversion failed when converting the nvarchar value '7.5' to data type int.




    Code:



    DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

    CREATE TABLE #TableWithInt (col1 INT)

    INSERT INTO #TableWithInt
    SELECT @FloatAsString col1

    SELECT * FROM #TableWithInt


    It looks like T-SQL doesn't support casting a FLOAT string literal '7.5' to an INT without first converting it into a FLOAT, or cutting the trailing decimal values off.



    Is there a workaround?










    share|improve this question



























      -1












      -1








      -1








      When inserting NVARCHAR containing a float value '7.5' into an INT column we get:




      Conversion failed when converting the nvarchar value '7.5' to data type int.




      Code:



      DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

      CREATE TABLE #TableWithInt (col1 INT)

      INSERT INTO #TableWithInt
      SELECT @FloatAsString col1

      SELECT * FROM #TableWithInt


      It looks like T-SQL doesn't support casting a FLOAT string literal '7.5' to an INT without first converting it into a FLOAT, or cutting the trailing decimal values off.



      Is there a workaround?










      share|improve this question
















      When inserting NVARCHAR containing a float value '7.5' into an INT column we get:




      Conversion failed when converting the nvarchar value '7.5' to data type int.




      Code:



      DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

      CREATE TABLE #TableWithInt (col1 INT)

      INSERT INTO #TableWithInt
      SELECT @FloatAsString col1

      SELECT * FROM #TableWithInt


      It looks like T-SQL doesn't support casting a FLOAT string literal '7.5' to an INT without first converting it into a FLOAT, or cutting the trailing decimal values off.



      Is there a workaround?







      tsql sql-server-2017






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 8 at 14:20









      Zohar Peled

      56.9k73475




      56.9k73475










      asked Nov 29 '18 at 4:25









      ChrisChris

      11




      11
























          1 Answer
          1






          active

          oldest

          votes


















          -1














          SQL Server does not support casting 7.5 to int neither implicitly nor explicitly - and with a good reason:
          7.5 might be a string literal representing float, but it might also be a string literal representing dot delimited numbers - and in this case - what int should the casting return? 7 or 5?



          There is no workaround and there shouldn't be one - either explicitly cast to float and let implicit conversion to int from float truncate the decimals off, or work with the correct data type to begin with.



          The following code will produce your expected results.



          DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

          CREATE TABLE #TableWithInt (col1 INT)

          INSERT INTO #TableWithInt
          SELECT CAST(@FloatAsString AS float)

          SELECT * FROM #TableWithInt





          share|improve this answer


























          • What is so wrong with this answer that it deserves a downvote?

            – Zohar Peled
            Dec 3 '18 at 19:32












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53531823%2fconversion-failed-when-converting-the-nvarchar-value-7-5-to-data-type-int%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          -1














          SQL Server does not support casting 7.5 to int neither implicitly nor explicitly - and with a good reason:
          7.5 might be a string literal representing float, but it might also be a string literal representing dot delimited numbers - and in this case - what int should the casting return? 7 or 5?



          There is no workaround and there shouldn't be one - either explicitly cast to float and let implicit conversion to int from float truncate the decimals off, or work with the correct data type to begin with.



          The following code will produce your expected results.



          DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

          CREATE TABLE #TableWithInt (col1 INT)

          INSERT INTO #TableWithInt
          SELECT CAST(@FloatAsString AS float)

          SELECT * FROM #TableWithInt





          share|improve this answer


























          • What is so wrong with this answer that it deserves a downvote?

            – Zohar Peled
            Dec 3 '18 at 19:32
















          -1














          SQL Server does not support casting 7.5 to int neither implicitly nor explicitly - and with a good reason:
          7.5 might be a string literal representing float, but it might also be a string literal representing dot delimited numbers - and in this case - what int should the casting return? 7 or 5?



          There is no workaround and there shouldn't be one - either explicitly cast to float and let implicit conversion to int from float truncate the decimals off, or work with the correct data type to begin with.



          The following code will produce your expected results.



          DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

          CREATE TABLE #TableWithInt (col1 INT)

          INSERT INTO #TableWithInt
          SELECT CAST(@FloatAsString AS float)

          SELECT * FROM #TableWithInt





          share|improve this answer


























          • What is so wrong with this answer that it deserves a downvote?

            – Zohar Peled
            Dec 3 '18 at 19:32














          -1












          -1








          -1







          SQL Server does not support casting 7.5 to int neither implicitly nor explicitly - and with a good reason:
          7.5 might be a string literal representing float, but it might also be a string literal representing dot delimited numbers - and in this case - what int should the casting return? 7 or 5?



          There is no workaround and there shouldn't be one - either explicitly cast to float and let implicit conversion to int from float truncate the decimals off, or work with the correct data type to begin with.



          The following code will produce your expected results.



          DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

          CREATE TABLE #TableWithInt (col1 INT)

          INSERT INTO #TableWithInt
          SELECT CAST(@FloatAsString AS float)

          SELECT * FROM #TableWithInt





          share|improve this answer















          SQL Server does not support casting 7.5 to int neither implicitly nor explicitly - and with a good reason:
          7.5 might be a string literal representing float, but it might also be a string literal representing dot delimited numbers - and in this case - what int should the casting return? 7 or 5?



          There is no workaround and there shouldn't be one - either explicitly cast to float and let implicit conversion to int from float truncate the decimals off, or work with the correct data type to begin with.



          The following code will produce your expected results.



          DECLARE @FloatAsString NVARCHAR(256) = N'7.5'

          CREATE TABLE #TableWithInt (col1 INT)

          INSERT INTO #TableWithInt
          SELECT CAST(@FloatAsString AS float)

          SELECT * FROM #TableWithInt






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Jan 8 at 14:20

























          answered Nov 29 '18 at 6:45









          Zohar PeledZohar Peled

          56.9k73475




          56.9k73475













          • What is so wrong with this answer that it deserves a downvote?

            – Zohar Peled
            Dec 3 '18 at 19:32



















          • What is so wrong with this answer that it deserves a downvote?

            – Zohar Peled
            Dec 3 '18 at 19:32

















          What is so wrong with this answer that it deserves a downvote?

          – Zohar Peled
          Dec 3 '18 at 19:32





          What is so wrong with this answer that it deserves a downvote?

          – Zohar Peled
          Dec 3 '18 at 19:32




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53531823%2fconversion-failed-when-converting-the-nvarchar-value-7-5-to-data-type-int%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Contact image not getting when fetch all contact list from iPhone by CNContact

          count number of partitions of a set with n elements into k subsets

          A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks