我正在从键/值表中读取一个值,该值应包含格式为yyyy-MM-dd的NULLABLE日期。

查询的简化版本是。

SELECT CAST(ClaimDate AS DATE) AS ClaimDate
FROM MyTable


这导致错误消息:


从字符转换日期和/或时间时转换失败
串。


我也尝试了CONVERT(DATE, ClaimDate),但无济于事。

现在,除了知道为什么会出现此错误外,我还很想知道是哪个值导致了此错误。

我已经看到有关上述错误消息的几个问题。但是我还没有找到能回答我问题的人。

当然,除了获得不良价值外,建议解决方案也受到高度赞赏。

最佳答案

根据您的SQL Server版本(2012+),可以使用TRY_CONVERT

SELECT ClaimDate
FROM   MyTable
WHERE  TRY_CONVERT(DATE, ClaimDate ) IS NULL
    AND ClaimDate IS NOT NULL


这将为您提供无法转换为日期的值,如何解决这些问题是另一个问题。同样,可以转换2019-01-12的值,但是如果它在字符串中,则不能确定这是12月还是1月的日期。您可能会得到有效但错误的日期!

10-06 12:10