将N / A值添加到转换的日期时间字段

时间:2013-07-23 16:38:20

标签: sql-server datetime

我有一个查询,其中包含两列是Datetime字段;它们是REVIEW_START_DT和REVIEW_END_DT。我将列日期格式转换为日 - 月 - 年格式。如果Cell在任一列中具有Null值,则Null值将替换为“N / A”值。我试图将其写入程序,但我仍然得到Null值。我无法弄清楚为什么。

SELECT 
ASSESSMENT_ID,
Reviewer_Name,
Examinee_Name,
Assessment_Type,
Assessment_Status,
CASE when REPLACE(CONVERT (varchar(9), REVIEW_START_DT, 6), ' ', '-') =NUll then 'N/A'
else REPLACE(CONVERT (varchar(9), REVIEW_START_DT, 6), ' ', '-') end as REVIEW_START_DT, 
CASE when 
 REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-')=NUll then 'N/A'
else  REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-') end  as REVIEW_END_DT, 
Assessment_Link
  FROM [New_EEs].[dbo].[vw_SBC_Assessment_Assignments]

2 个答案:

答案 0 :(得分:2)

使用 null 而不是IS测试= if x is null ...,因为没有等于{ {1}}。

NULL

REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-') IS NULL THEN 'N/A'

更好的

ISNULL(REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-'), 'N/A')

答案 1 :(得分:0)

使用Coalesce()功能:

SELECT Coalesce(Cast(Replace(REVIEW_START_DR, ' ', '-') As char(10)), 'N/A')