将NULL日期时间转换为空白

Emi*_*ily 5 sql sql-server null datetime

我想将datetime字段转换为varchar,以便当日期为NULL时可以显示空白或消息。这是我到目前为止的内容:

select
isnull(us.Date,0) as USDate,
isnull(au.Date,0) as AUDate
from ustable us
left join autable au
on us.column=au.column
Run Code Online (Sandbox Code Playgroud)

现在,这表明:

USDATE 
2014-10-24 10:29:07.450
1900-01-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

我希望能够使“ 1900-01-01 00:00:00.000” varchar,以便我可以写一条消息或显示一个真正的空白。

小智 8

我为您要完成的任务找到的最简单的代码行如下。

ISNULL(CONVERT(VARCHAR(30),us.Date,121),'') as USDate,
ISNULL(CONVERT(VARCHAR(30),au.Date,121),'') as AUDate,
Run Code Online (Sandbox Code Playgroud)

我已经测试过这个并验证它有效。


Kri*_*ana 6

您可以像这样使用CaseAND-CONVERT

SELECT
CASE WHEN us.Date IS NULL THEN '' ELSE CONVERT(VARCHAR(30), us.Date, 121) END AS USDate,
CASE WHEN au.Date IS NULL THEN '' ELSE CONVERT(VARCHAR(30), au.Date, 121) END AS AUDate
FROM ustable us
left join autable au
on us.column=au.column
Run Code Online (Sandbox Code Playgroud)

  • 这将实际输出`1900-01-01 00:00:00.000`。 (2认同)