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;
}
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
add a comment |
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
add a comment |
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
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
tsql sql-server-2017
edited Jan 8 at 14:20
Zohar Peled
56.9k73475
56.9k73475
asked Nov 29 '18 at 4:25
ChrisChris
11
11
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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
What is so wrong with this answer that it deserves a downvote?
– Zohar Peled
Dec 3 '18 at 19:32
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
What is so wrong with this answer that it deserves a downvote?
– Zohar Peled
Dec 3 '18 at 19:32
add a comment |
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
What is so wrong with this answer that it deserves a downvote?
– Zohar Peled
Dec 3 '18 at 19:32
add a comment |
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
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
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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