如何处理单个 SQL 查询中的日期错误

问题描述 投票:0回答:1

我希望能够运行这样的查询:

SELECT TO_DATE(date_id, 'YYYYMMDD') FROM dates;

大多数数据都很好,例如 2024 年 1 月 18 日的 date_id 将为 20240118,但此表中存在一些错误,其中 date_id 类似于 20240153,其中日期无效,并且查询将抛出错误(月份中的日期必须介于 1 和月份最后一天之间)。

是否可以在遇到超出范围的值时只返回 NULL,以便查询可以完成运行?

只需更改表中的数据就可以了,但我想在 99% 的数据有效且只有一些无效行的表上运行查询。仅获取返回错误的行也是一个有用的解决方案。

sql date error-handling plsqldeveloper
1个回答
1
投票

这不是 100% 清楚,但这看起来像 Postgresql,所以这就是我构建答案的方式。

仅获取返回错误的行也是一个有用的解决方案。

确实如此。查找此信息,并纠正错误数据和允许输入错误数据的应用程序,以便您可以干净地运行实际查询,这几乎肯定是更好的选择。修复这个破碎模式设计以首先使用日期类型的奖励积分。

您可以使用此答案构建查询来获取坏行:

https://stackoverflow.com/a/5966390/3043

© www.soinside.com 2019 - 2024. All rights reserved.