SQL Date返回如果Null则为空

时间:2017-08-22 17:44:37

标签: sql date null

我目前有以下代码:

CASE WHEN CONVERT(DATE, BirthDateTime) IS NULL THEN '' END AS DOB,
CASE WHEN CONVERT(DATE, ServiceDateTime) IS NULL THEN '' END AS [Admission Date],
CASE WHEN CONVERT(DATE, DischargeDateTime) IS NULL THEN '' END AS [Discharge Date],

它返回:

enter image description here

将日期仍然转换为日期的最佳方法是什么(原始字段是日期时间),如果是空,则返回空白或“

提前致谢!

3 个答案:

答案 0 :(得分:2)

在SQL Server中:

由于您想使用空字符串而不是null,因此您将转换为字符串。你可以使用10的大小和样式120来返回iso格式(没有时间部分),如下所示:

select 
    dob = isnull(convert(varchar(10),BirthDateTime,120),'')
  , [Admission Date] = isnull(convert(varchar(10),ServiceDateTime,120),'')
  , [Discharge Date] = isnull(convert(varchar(10),DischargeDateTime,120),'')
from ...

您可以在此处找到convert()的其他样式代码:docs: cast and convert

答案 1 :(得分:0)

你可以使用coalesce。无论行如何,列都必须始终具有一种类型,因此在将日期类型传递给合并之前,必须将日期类型转换为文本类型:

COALESCE(CONVERT(VARCHAR(100), BirthDateTime), '') AS DOB,

答案 2 :(得分:0)

对于SQL SERVER

跟着

SELECT ISNULL(DOB,'') AS DOB FROM TABLE