gpt4 book ai didi

sql-server - 如何识别表中的哪条记录已引发错误

转载 作者:行者123 更新时间:2023-12-03 08:30:10 25 4
gpt4 key购买 nike

我在下面的表格中有一个yyyy-mm-dd格式的varchar

DATECOL
.......
2014-12-01
2014-12-02
2014-12-03
2014-12-04
2014-13-04

最后一个记录是垃圾数据,因为 13不是一个月,并且会引发错误
当我执行以下查询时。
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.

这是我执行的查询
SELECT CAST(DATECOL AS DATE) DDD FROM #TEMP

现在,我如何知道哪一行导致了表中的错误,即 2014-13-045th记录。我如何从 5th记录中知道该错误发生了?当处理具有数百万数据的表时,这将很有用。

最佳答案

您可以使用名为 ISDATE() 的函数,该函数返回1的值(可以转换为datetime/date),返回0的值(是有效的datetime/date/time值)

获取无效的日期时间/日期/时间值

SELECT * 
FROM #TEMP
WHERE ISDATE(DATECOL) = 0

将返回所有值,如果您尝试将它们转换为datetime/date数据类型,则会出错。

为了避免在转换数据时遇到错误,您可以执行以下操作

仅转换有效的日期时间/日期/时间值
SELECT CAST(DATECOL AS DATE) DDD 
FROM #TEMP
WHERE ISDATE(DATECOL) = 1

关于sql-server - 如何识别表中的哪条记录已引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27725711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com