我目前正在为我的 MCSA 数据平台学习,我答错了以下问题,我正在寻找关于为什么我的答案错误的解释,因为测试中的解释没有多大意义。
您有一个名为 AuditTrail 的表,用于跟踪对其他表中数据的修改。AuditTrail 表由许多进程更新。输入到 AuditTrail 的数据可能包含格式不正确的日期时间值。您实现了一个从各个列检索数据的过程,但有时该过程在无法将数据转换为有效的日期时间值时会引发错误。您需要使用 en-US 格式区域性代码将数据转换为有效的日期时间值。如果转换失败,则必须以 en-US 格式区域性代码返回空值。如果转换失败,则列输出中必须返回空值,并且转换过程不得抛出错误。
选项是TRY_PARSE功能与TRY_CONVERT功能。
我选择了,TRY_PARSE但正确答案是TRY_CONVERT.
任何人都可以澄清为什么TRY_PARSE在这个例子中不是一个有效的选择,因为我不想在未来犯这个错误
TRY_PARSE和之间的主要区别之一TRY_CONVERT是TRY_PARSE接受带有子句的文化USING。尽管措辞不佳且包含在假设中,但这个问题似乎表明输入和系统文化是相同的。
因此,在这种情况下TRY_CONVERT,这将是两个调用中更简单的一个,因为默认区域性被假定为“en-US”。
如果您需要从字符串中解析法国日期,则必须选择TRY_PARSE,因为它允许您指定区域性。
TRY_PARSE ('mars 18 2018' AS DATETIME USING 'fr-FR')
Run Code Online (Sandbox Code Playgroud)
来源: https: //learn.microsoft.com/en-us/sql/t-sql/functions/try-parse-transact-sql ?view=sql-server-2017