如何用“0”替换日期列中的空值

时间:2016-07-11 08:42:27

标签: sql-server date

我想用“0”替换日期列上的空值。我使用这行代码来执行此操作:

case when ast.AL_OpenDateShort is null then 0 else ast.AL_OpenDateShort end as AL_OpenDateShort

我收到了一个错误:

  

“操作数类型冲突:int与日期不兼容”

如何将日期列中的空值替换为“0”

3 个答案:

答案 0 :(得分:1)

declare @dt datetime = '2016-07-11'
declare @dt2 datetime = null

select case when @dt is null then '0' else cast(@dt as varchar(11)) end dt,
       case when @dt2 is null then '0'  else cast(@dt2 as varchar(11)) end dt2

返回

dt          dt2
Jul 11 2016 0

答案 1 :(得分:1)

您不能d作为0DATE0。您可能已将INT用作0(与DATE中相同)但实际上是DATEDIFF(...)日期。

无论如何,我不知道你真正想要的是什么,但这会给你一个ISO 8601 19000101格式的日期,如果为null则为0。

您可能希望将INT类型更改为INT以及适合的格式。但是,你没有约会,你会有一个字符串。

VARCHAR

答案 2 :(得分:0)

试试这个:

SELECT ISNULL(myColumn, 0 ) FROM myTable