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









share|improve this question



















  • 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











  • 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















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









share|improve this question



















  • 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











  • 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













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









share|improve this question















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 9 at 16:41

























asked Nov 9 at 15:47









Mike S

14012




14012







  • 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











  • 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




    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








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













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...






share|improve this answer



























    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.






    share|improve this answer






















    • The data types are specified in the question, they are date and int.
      – GSerg
      Nov 9 at 16:44










    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
    );



    );













    draft saved

    draft discarded


















    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...






    share|improve this answer
























      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...






      share|improve this answer






















        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...






        share|improve this answer












        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...







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 11 at 11:09









        Shnugo

        48.3k72566




        48.3k72566






















            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.






            share|improve this answer






















            • The data types are specified in the question, they are date and int.
              – GSerg
              Nov 9 at 16:44














            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.






            share|improve this answer






















            • The data types are specified in the question, they are date and int.
              – GSerg
              Nov 9 at 16:44












            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.






            share|improve this answer














            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.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 11 at 12:47

























            answered Nov 9 at 16:15









            serge

            55037




            55037











            • 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















            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

















            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.





            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.




            draft saved


            draft discarded














            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





















































            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

            𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

            Edmonton

            Crossroads (UK TV series)