我正在研究一个问题,我希望有一个日期动态过滤器(我希望根据今天的日期查看过去6个月)。 Orderdate是INT,这就是我使用nvarchar然后使用date的原因。当我使用下面的代码时,我收到以下错误消息“从字符串转换日期和/或时间时转换失败。”。有谁知道我能做些什么来解决这个问题?
cast(cast(OrderDate as nvarchar) as date) > dateadd(month,-6, getdate())
答案 0 :(得分:0)
显而易见的解决方案是使用try_convert()
。
try_convert(date, try_convert(varchar(255), OrderDate)) > dateadd(month, -6, getdate())
这将删除错误,但可能无法解决潜在问题。
您可以通过以下方式找到有问题的值:
select OrderDate
from t
where OrderDate is not null and
try_convert(date, try_convert(varchar(255), OrderDate)) is null