T-SQL:将varchar转换为数字

时间:2016-09-14 21:30:46

标签: sql-server tsql

这可能是简单的查询,但我无法按预期得到,所以这里要问。如果问题有误,请原谅

the docs

在上面,我提取日期字段转换为数字(6),但它是空的,所以返回0.我试图使用空格而不是0

我试过像这样投(我可能错了):

 select 
     isnull(date_disqualified, cast('' as numeric)) as date_disqualified
 from tableA

并使用那种类型的数字转换为varchar或int,但根本没有运气。

有人可以帮助我,我做错了什么或者如何让它发挥作用?

这件作品让我的一天:(答案)

ISNULL (CAST([date_disqualified] AS VARCHAR(6)), ' ')

谢谢大家

1 个答案:

答案 0 :(得分:0)

如果您想要一个空格,那么整个列必须是一个字符。基本上是:

select (case when date_disqualified is null then ''
             else convert(varchar(255), date_disqualified, 120)
        end)

我不确定为什么你想要将值作为数字返回,如果它是一个字符串。您应该使用convert()将值转换为您想要的字符串。