sql - 如何识别铸造列的错误?
问题描述
我有一张全是 NVARCHAR 的表。我正在尝试将列转换为日期;但是,该列中似乎有一些值不会转换为日期并且在中途抛出错误。
我试图找到有问题的行。但是,我不知道如何将结果等同于错误..
SELECT id,
CASE WHEN CAST(date_of_birth AS DATE) = error
THEN 1
ELSE 0
FROM TABLE1
表格1
id date_of_birth
1 05/05/1934
2 feathers
3 06/06/1843
预期成绩
id date_of_birth
1 0
2 1
3 0
关于如何隔离有问题的行的任何建议?
解决方案
使用TRY_CAST()
:
SELECT id,
(CASE WHEN TRY_CAST(date_of_birth AS DATE) IS NULL AND date_of_birth IS NOT NULL
THEN 1
ELSE 0
END) as is_bad_date_of_birth
FROM TABLE1;
推荐阅读
- python - 斐波那契求和和记忆
- linux - Shell脚本用变量linux替换字符串
- c++ - 制定不能有任何跳过字符的 antlr4 解析器规则
- python - 您如何确定数组中的不同值对应的内容?(声音设备)
- javascript - 如何使用来自 Sapper 客户端的 fetch
- docker - akeneo pim ce 4.0 在 Windows 的 docker 桌面上安装错误
- c++ - 类外的静态变量实例化
- c# - 如何将浮动添加到 Y 上的位置?
- typescript - 带有 keyof 的打字稿预设键
- javascript - 我可以为类别库添加一个锚 (#) 到 WordPress 永久链接吗