我正在从键/值表中读取一个值,该值应包含格式为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月的日期。您可能会得到有效但错误的日期!