转换SQL Server null日期/时间字段

ken*_*com 4 sql sql-server

每当此查询的值为null时

SELECT ISNULL(someDateTime,'')
FROM  someTable
Run Code Online (Sandbox Code Playgroud)

结果是

someDateTime  
------------
1900-01-01 00:00:00.000

我希望它是"不",所以如果我运行这个:

SELECT ISNULL(someDateTime,'No')
FROM  someTable
Run Code Online (Sandbox Code Playgroud)

那就是这个错误:

从字符串转换datetime时转换失败.

怎么做?提前致谢!

Mic*_*tta 6

表达式的结果需要是单一类型.如果你想要一个字符串(并且你这样做,因为'No'不是DateTime),你需要将datetime转换为这样的字符串:

SELECT ISNULL(cast(someDatetime as varchar(20)), 'No') FROM someTable
Run Code Online (Sandbox Code Playgroud)

正如其他人所建议的那样,这样的代码闻起来很糟糕,您可能希望将null传递给客户端组件并在那里进行转换.