iT邦幫忙

0

詢問 sql server 的 primitive type 與 .net 的類型比對

如標題所述,以下程式是先假設自己有一個方法,呼叫此方法時會傳入要轉型的@Type以及要轉型的值@Value,依照判斷做轉型後回傳@ReturnValue。
目前上網找了資料,統整成以下判斷,但尚有些不清楚要轉型成什麼的部份,與不知道以下資料其正確性,或是否有更好的寫法,還請給予指正,謝謝!

不清楚的部分 : sbyte、uint、long、ulong、short、ushort

if N'bool'=@Type
begin
	set @ReturnValue=convert(bit, @Value)
end
else if N'byte'=@Type
begin
	set @ReturnValue=convert(varbinary, @Value)
end
else if N'char'=@Type
begin
	set @ReturnValue=convert(char, @Value)
end
else if N'decimal'=@Type
begin
	set @ReturnValue=convert(decimal, @Value)
end
else if N'double'=@Type	
begin	
	set @ReturnValue=convert(float, @Value)
end
else if N'float'=@Type
begin
	set @ReturnValue=convert(float, @Value)
end
else if N'int'=@Type
begin
	set @ReturnValue=convert(int, @Value)
end	
else if N'DateTime'=@Type
begin
    set @ReturnValue=convert(datetime, @Value)
end
else
begin
	set @ReturnValue=convert(String, @Value)
end
木澤 iT邦新手 5 級 ‧ 2019-08-09 23:17:04 檢舉
long我記得是bigint
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-01-16 01:15:14

不清楚的部分 : sbyte、uint、long、ulong、short、ushort

  • sbyte 在 SQL Server 中沒有對應到的類型, 但是可以使用 tinyint
  • uint 在 SQL Server 中沒有對應到的類型, 但是可以使用 int
  • long 在 SQL Server 中沒有對應到的類型, 但是可以使用 bigint
  • ulong 在 SQL Server 中沒有對應到的類型, 但是可以使用 bigint
  • short 在 SQL Server 中沒有對應到的類型, 但是可以使用 smallint
  • ushort 在 SQL Server 中沒有對應到的類型, 但是可以使用 smallint

我要發表回答

立即登入回答