2016-09-14 183 views
0

這可能是簡單的查詢,但想象中那麼這裏問我不能得到。如果問題是錯了,請原諒你T-SQL:將varchar轉換爲數值

enter image description here

在上面,我取日期字段轉換爲數字(6),但它是空的,所以將返回0。我試圖用空格代替0

我試圖鑄造這樣的(我可能是錯的):

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

,並與該類型轉換數字爲varchar,或詮釋的,但沒有運氣可言播放。

有人能幫幫我,我究竟做錯了或者我怎麼做工作?

這片讓我很快樂:(ANSWER)

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

謝謝大家

回答

0

如果你想有一個空格,然後整列必須是一個字符。基本上:

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

我不知道爲什麼你想要返回值作爲一個數字,如果它是一個字符串。您應該使用convert()將該值轉換爲所需的字符串。

+0

,因爲這是通過COBOL程序做的,我必須相應地設置的話,我想你的解決方案,但沒有工作,錯誤是像以前一樣(錯誤的數據類型爲varchar轉換爲數字)。因爲「」的意思是字符串,我我試圖放在數字字段中。 – Akka

+0

所以,你正試圖在數字字段中存儲'',這可能嗎? – BhatiaAshish

+0

@BhatiaAshish。 。 。有點。 SQL引擎將其轉換爲「0」,這就是出現在輸出中的原因。 –