我想用“0”替换日期列上的空值。我使用这行代码来执行此操作:
case when ast.AL_OpenDateShort is null then 0 else ast.AL_OpenDateShort end as AL_OpenDateShort
我收到了一个错误:
“操作数类型冲突:int与日期不兼容”
如何将日期列中的空值替换为“0”
答案 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
作为0
,DATE
是0
。您可能已将INT
用作0
(与DATE
中相同)但实际上是DATEDIFF(...)
日期。
无论如何,我不知道你真正想要的是什么,但这会给你一个ISO 8601 19000101
格式的日期,如果为null则为0。
您可能希望将INT
类型更改为INT
以及适合的格式。但是,你没有约会,你会有一个字符串。
VARCHAR
答案 2 :(得分:0)
试试这个:
SELECT ISNULL(myColumn, 0 ) FROM myTable