我有一个存储过程,并希望返回一个日期作为查询的一部分,但是如果没有记录(NULL),则返回一些友好的东西,如'No Planned Stock'
我有这个
ISNULL(MIN(wt.CompletionDate),'No Planned Stock') AS NextStockIn
这会导致以下错误
从字符串转换日期和/或时间时转换失败。
但是这一半起作用(有一半是有效的吗?)
MIN(ISNULL(wt.CompletionDate,'No Planned Stock')) AS NextStockIn
这个问题是我仍然得到NULL而不是'No Planned Stock'
在一个理想的世界中,像一个nicley格式化(dd / MM / yyyy)日期或'No Planned Stock'
我非常感谢您的帮助,谢谢您提前。
答案 0 :(得分:0)
我正在考虑这些方式
CASE WHEN CAST(wt.CompletionDate AS VARCHAR(25)) IS NULL
THEN 'No Planned Stock'
ELSE CAST(MIN(wt.CompletionDate) AS VARCHAR(25))
因为varchar肯定不是与datetime类型兼容,但有时候,根据varchar数据的值,它可以由SQL Server自动转换为datetime类型,在这种情况下,#No; No Planned Stock&#39 ;不能转换为日期时间值。
或者也许你也可以试试这个
ISNULL(CAST(MIN(wt.CompletionDate) AS VARCHAR(25)),'No Planned Stock') AS NextStockIn
我还没有测试过这些,但我希望这可以按预期工作