SQL忽略CAST失败的结果

时间:2016-12-08 14:59:14

标签: sql-server sql-server-2012

示例WHERE子句:

WHERE (QD.New_P11dValue > 0
AND DS.New_purchaseordersenddate IS NOT NULL 
AND DS.New_ActualDate IS NULL 
AND DS.New_PassedToAdmin = 1 
AND ds.New_InStock = 0
)
AND
(
(du.New_AnticipatedDate >= '04/01/2017' AND du.New_AnticipatedDate IS NOT NULL)
OR
(CAST(osu.New_NewValue as date) >= '04/01/2017' AND osu.New_NewValue IS NOT NULL)
)

我的问题的根本原因是osu_new_newvalue代表一个日期,但它存储为varchar,我不能不幸地改变它。

运行查询时出现此错误

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

无论如何,我可以忽略CAST失败的结果吗?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用下面的try_convert

(try_convert(date,osu.New_NewValue) >= '04/01/2017' AND try_convert(date,osu.New_NewValue) IS NOT NULL)
)

答案 1 :(得分:1)

UITextField