TSQL Try_Parse vs Try_Convert in MS Exam (culture code is n/a)
up vote
0
down vote
favorite
I taking a "test" test for 761 and see question which asks me what can I use if value of field is not well defined so I need return NULL if conversion fails, no any specific type of data mentioned and ** nothing about that culture code. Just need return NULL and I have both TRY_PARSE
and TRY_CONVERT
as a choice. They both do **if fails then returns NULL value**
, so I think they both valid answers, but it's single choice question and correct answer in this test is TRY_PARSE
. Is there any logic behind this or it's just not well constructed question. This is some 3rd party vendor for drill test.
Tx all. M
-------------------------------------------------Q78
declare @FakeDate varchar(100) = '38383838', @FakeInt VARCHAR(10) = 'xyz'
SELECT try_convert(DATE, @FakeDate),try_convert(INT, @FakeInt)
SELECT try_parse(@FakeDate AS date), TRY_PARSE(@FakeInt AS INT)
(No column name) (No column name)
NULL NULL
(No column name) (No column name)
NULL NULL
sql-server tsql
add a comment |
up vote
0
down vote
favorite
I taking a "test" test for 761 and see question which asks me what can I use if value of field is not well defined so I need return NULL if conversion fails, no any specific type of data mentioned and ** nothing about that culture code. Just need return NULL and I have both TRY_PARSE
and TRY_CONVERT
as a choice. They both do **if fails then returns NULL value**
, so I think they both valid answers, but it's single choice question and correct answer in this test is TRY_PARSE
. Is there any logic behind this or it's just not well constructed question. This is some 3rd party vendor for drill test.
Tx all. M
-------------------------------------------------Q78
declare @FakeDate varchar(100) = '38383838', @FakeInt VARCHAR(10) = 'xyz'
SELECT try_convert(DATE, @FakeDate),try_convert(INT, @FakeInt)
SELECT try_parse(@FakeDate AS date), TRY_PARSE(@FakeInt AS INT)
(No column name) (No column name)
NULL NULL
(No column name) (No column name)
NULL NULL
sql-server tsql
1
Well, the secondtry_convert
is trying to convert@FakeInt
to a date whereas the secondtry_parse
is correctly usingint
, but that is not really a question on the choice betweentry_convert
andtry_parse
, rather on being able to spot stupid typos... unless you made a typo in your question to begin with.
– GSerg
Nov 9 at 15:59
Si, it was a typo, it was just my exploration, I corrected it. This still produce NULL if fail, So I assume there is no any rationale in this question. Tx M!
– Mike S
Nov 9 at 16:41
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I taking a "test" test for 761 and see question which asks me what can I use if value of field is not well defined so I need return NULL if conversion fails, no any specific type of data mentioned and ** nothing about that culture code. Just need return NULL and I have both TRY_PARSE
and TRY_CONVERT
as a choice. They both do **if fails then returns NULL value**
, so I think they both valid answers, but it's single choice question and correct answer in this test is TRY_PARSE
. Is there any logic behind this or it's just not well constructed question. This is some 3rd party vendor for drill test.
Tx all. M
-------------------------------------------------Q78
declare @FakeDate varchar(100) = '38383838', @FakeInt VARCHAR(10) = 'xyz'
SELECT try_convert(DATE, @FakeDate),try_convert(INT, @FakeInt)
SELECT try_parse(@FakeDate AS date), TRY_PARSE(@FakeInt AS INT)
(No column name) (No column name)
NULL NULL
(No column name) (No column name)
NULL NULL
sql-server tsql
I taking a "test" test for 761 and see question which asks me what can I use if value of field is not well defined so I need return NULL if conversion fails, no any specific type of data mentioned and ** nothing about that culture code. Just need return NULL and I have both TRY_PARSE
and TRY_CONVERT
as a choice. They both do **if fails then returns NULL value**
, so I think they both valid answers, but it's single choice question and correct answer in this test is TRY_PARSE
. Is there any logic behind this or it's just not well constructed question. This is some 3rd party vendor for drill test.
Tx all. M
-------------------------------------------------Q78
declare @FakeDate varchar(100) = '38383838', @FakeInt VARCHAR(10) = 'xyz'
SELECT try_convert(DATE, @FakeDate),try_convert(INT, @FakeInt)
SELECT try_parse(@FakeDate AS date), TRY_PARSE(@FakeInt AS INT)
(No column name) (No column name)
NULL NULL
(No column name) (No column name)
NULL NULL
sql-server tsql
sql-server tsql
edited Nov 9 at 16:41
asked Nov 9 at 15:47
Mike S
14012
14012
1
Well, the secondtry_convert
is trying to convert@FakeInt
to a date whereas the secondtry_parse
is correctly usingint
, but that is not really a question on the choice betweentry_convert
andtry_parse
, rather on being able to spot stupid typos... unless you made a typo in your question to begin with.
– GSerg
Nov 9 at 15:59
Si, it was a typo, it was just my exploration, I corrected it. This still produce NULL if fail, So I assume there is no any rationale in this question. Tx M!
– Mike S
Nov 9 at 16:41
add a comment |
1
Well, the secondtry_convert
is trying to convert@FakeInt
to a date whereas the secondtry_parse
is correctly usingint
, but that is not really a question on the choice betweentry_convert
andtry_parse
, rather on being able to spot stupid typos... unless you made a typo in your question to begin with.
– GSerg
Nov 9 at 15:59
Si, it was a typo, it was just my exploration, I corrected it. This still produce NULL if fail, So I assume there is no any rationale in this question. Tx M!
– Mike S
Nov 9 at 16:41
1
1
Well, the second
try_convert
is trying to convert @FakeInt
to a date whereas the second try_parse
is correctly using int
, but that is not really a question on the choice between try_convert
and try_parse
, rather on being able to spot stupid typos... unless you made a typo in your question to begin with.– GSerg
Nov 9 at 15:59
Well, the second
try_convert
is trying to convert @FakeInt
to a date whereas the second try_parse
is correctly using int
, but that is not really a question on the choice between try_convert
and try_parse
, rather on being able to spot stupid typos... unless you made a typo in your question to begin with.– GSerg
Nov 9 at 15:59
Si, it was a typo, it was just my exploration, I corrected it. This still produce NULL if fail, So I assume there is no any rationale in this question. Tx M!
– Mike S
Nov 9 at 16:41
Si, it was a typo, it was just my exploration, I corrected it. This still produce NULL if fail, So I assume there is no any rationale in this question. Tx M!
– Mike S
Nov 9 at 16:41
add a comment |
2 Answers
2
active
oldest
votes
up vote
2
down vote
First of all: TRY_CAST()
, TRY_CONVERT()
and TRY_PARSE()
will do quite the same without sepcifying a culture or a format/style code. This will rely on your system's settings implicitly. At least with a date/time this is a never-do.
In your case I'd suggest TRY_PARSE()
out of the following reasons:
- You want to transform string-values to typed values. This process is called parsing.
- You can add culture/format information if you know any details in future
CONVERT
and CAST
are multi-purpose functions. You can cast anything to anything (as long as the cast works). CAST
will use the cast-map to decide what can be casted explicitly. CONVERT
does roughly the same, but offers more control with the style paramter. And that is one more reason against TRY_CONVERT
:
- Converting a date should never be done without the third parameter!
My conclusio: It seems okay to me, that the correct answer is TRY_PARSE
(mainly because of the needed action, which is parsing a string). But the question is really poor and far away from any real-world scenarios...
add a comment |
up vote
1
down vote
According to the documentation
Use TRY_PARSE only for converting from string to date/time and number
types.
If the data type is not specified in your question, you need to choose the TRY_CONVERT
function.
If the types to convert are date and numbers use TRY_PARSE
function.
The data types are specified in the question, they aredate
andint
.
– GSerg
Nov 9 at 16:44
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',
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%2f53228970%2ftsql-try-parse-vs-try-convert-in-ms-exam-culture-code-is-n-a%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
First of all: TRY_CAST()
, TRY_CONVERT()
and TRY_PARSE()
will do quite the same without sepcifying a culture or a format/style code. This will rely on your system's settings implicitly. At least with a date/time this is a never-do.
In your case I'd suggest TRY_PARSE()
out of the following reasons:
- You want to transform string-values to typed values. This process is called parsing.
- You can add culture/format information if you know any details in future
CONVERT
and CAST
are multi-purpose functions. You can cast anything to anything (as long as the cast works). CAST
will use the cast-map to decide what can be casted explicitly. CONVERT
does roughly the same, but offers more control with the style paramter. And that is one more reason against TRY_CONVERT
:
- Converting a date should never be done without the third parameter!
My conclusio: It seems okay to me, that the correct answer is TRY_PARSE
(mainly because of the needed action, which is parsing a string). But the question is really poor and far away from any real-world scenarios...
add a comment |
up vote
2
down vote
First of all: TRY_CAST()
, TRY_CONVERT()
and TRY_PARSE()
will do quite the same without sepcifying a culture or a format/style code. This will rely on your system's settings implicitly. At least with a date/time this is a never-do.
In your case I'd suggest TRY_PARSE()
out of the following reasons:
- You want to transform string-values to typed values. This process is called parsing.
- You can add culture/format information if you know any details in future
CONVERT
and CAST
are multi-purpose functions. You can cast anything to anything (as long as the cast works). CAST
will use the cast-map to decide what can be casted explicitly. CONVERT
does roughly the same, but offers more control with the style paramter. And that is one more reason against TRY_CONVERT
:
- Converting a date should never be done without the third parameter!
My conclusio: It seems okay to me, that the correct answer is TRY_PARSE
(mainly because of the needed action, which is parsing a string). But the question is really poor and far away from any real-world scenarios...
add a comment |
up vote
2
down vote
up vote
2
down vote
First of all: TRY_CAST()
, TRY_CONVERT()
and TRY_PARSE()
will do quite the same without sepcifying a culture or a format/style code. This will rely on your system's settings implicitly. At least with a date/time this is a never-do.
In your case I'd suggest TRY_PARSE()
out of the following reasons:
- You want to transform string-values to typed values. This process is called parsing.
- You can add culture/format information if you know any details in future
CONVERT
and CAST
are multi-purpose functions. You can cast anything to anything (as long as the cast works). CAST
will use the cast-map to decide what can be casted explicitly. CONVERT
does roughly the same, but offers more control with the style paramter. And that is one more reason against TRY_CONVERT
:
- Converting a date should never be done without the third parameter!
My conclusio: It seems okay to me, that the correct answer is TRY_PARSE
(mainly because of the needed action, which is parsing a string). But the question is really poor and far away from any real-world scenarios...
First of all: TRY_CAST()
, TRY_CONVERT()
and TRY_PARSE()
will do quite the same without sepcifying a culture or a format/style code. This will rely on your system's settings implicitly. At least with a date/time this is a never-do.
In your case I'd suggest TRY_PARSE()
out of the following reasons:
- You want to transform string-values to typed values. This process is called parsing.
- You can add culture/format information if you know any details in future
CONVERT
and CAST
are multi-purpose functions. You can cast anything to anything (as long as the cast works). CAST
will use the cast-map to decide what can be casted explicitly. CONVERT
does roughly the same, but offers more control with the style paramter. And that is one more reason against TRY_CONVERT
:
- Converting a date should never be done without the third parameter!
My conclusio: It seems okay to me, that the correct answer is TRY_PARSE
(mainly because of the needed action, which is parsing a string). But the question is really poor and far away from any real-world scenarios...
answered Nov 11 at 11:09
Shnugo
48.3k72566
48.3k72566
add a comment |
add a comment |
up vote
1
down vote
According to the documentation
Use TRY_PARSE only for converting from string to date/time and number
types.
If the data type is not specified in your question, you need to choose the TRY_CONVERT
function.
If the types to convert are date and numbers use TRY_PARSE
function.
The data types are specified in the question, they aredate
andint
.
– GSerg
Nov 9 at 16:44
add a comment |
up vote
1
down vote
According to the documentation
Use TRY_PARSE only for converting from string to date/time and number
types.
If the data type is not specified in your question, you need to choose the TRY_CONVERT
function.
If the types to convert are date and numbers use TRY_PARSE
function.
The data types are specified in the question, they aredate
andint
.
– GSerg
Nov 9 at 16:44
add a comment |
up vote
1
down vote
up vote
1
down vote
According to the documentation
Use TRY_PARSE only for converting from string to date/time and number
types.
If the data type is not specified in your question, you need to choose the TRY_CONVERT
function.
If the types to convert are date and numbers use TRY_PARSE
function.
According to the documentation
Use TRY_PARSE only for converting from string to date/time and number
types.
If the data type is not specified in your question, you need to choose the TRY_CONVERT
function.
If the types to convert are date and numbers use TRY_PARSE
function.
edited Nov 11 at 12:47
answered Nov 9 at 16:15
serge
55037
55037
The data types are specified in the question, they aredate
andint
.
– GSerg
Nov 9 at 16:44
add a comment |
The data types are specified in the question, they aredate
andint
.
– GSerg
Nov 9 at 16:44
The data types are specified in the question, they are
date
and int
.– GSerg
Nov 9 at 16:44
The data types are specified in the question, they are
date
and int
.– GSerg
Nov 9 at 16:44
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53228970%2ftsql-try-parse-vs-try-convert-in-ms-exam-culture-code-is-n-a%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
1
Well, the second
try_convert
is trying to convert@FakeInt
to a date whereas the secondtry_parse
is correctly usingint
, but that is not really a question on the choice betweentry_convert
andtry_parse
, rather on being able to spot stupid typos... unless you made a typo in your question to begin with.– GSerg
Nov 9 at 15:59
Si, it was a typo, it was just my exploration, I corrected it. This still produce NULL if fail, So I assume there is no any rationale in this question. Tx M!
– Mike S
Nov 9 at 16:41