0

我的查询有以下部分:

ISNULL(cast(fd.decision_date as varchar(20)), 'PENDING') as facility,
ISNULL(cast(cd.decision_date as varchar(20)), 'PENDING') as corporate,
ISNULL(cast(cb.creation_date as varchar(20)), 'PENDING') as billing

我的值最初是 datetime 数据类型,但是如果值为 NULL,我想要做的是返回单词“PENDING”。

使用上面的代码,我的结果被cast编辑为 a varchar,因此返回如下内容:

Aug 20 2013 9:35AM 

代替2013-08-20 09:35:54

建议将不胜感激。

4

2 回答 2

1

替换castconvert和适当的样式转换语法和样式,例如:

ISNULL(convert(varchar(20), fd.decision_date, 120), 'PENDING') as facility,
于 2013-08-22T18:01:54.920 回答
1

而不是cast(... as varchar(20)),convert与样式编号一起使用,这正是它的用途。

SELECT CONVERT(CHAR(19), GETDATE(), 120);

所以你的查询变成:

COALESCE(CONVERT(CHAR(19), fd.decision_date, 120), 'PENDING') as facility,
COALESCE(CONVERT(CHAR(19), cd.decision_date, 120), 'PENDING') as corporate,
COALESCE(CONVERT(CHAR(19), cb.creation_date, 120), 'PENDING') as billing
于 2013-08-22T18:02:39.750 回答