當前位置:首頁 » 編程語言 » sqlserver進制轉換
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver進制轉換

發布時間: 2022-02-14 20:50:11

sql Server如何編寫函數實現把十進制數轉換為二進制數求大神相助!!

創建函數

createFUNCTION[dbo].[Dec2Bin](@DecINT,@StrLenINT)
RETURNSVARCHAR(31)--INT型,4位元組,正數轉為二進制字元串最多31位
AS
BEGIN
DECLARE@BinStrASVARCHAR(31)--二進製表示的字元串
DECLARE@Div2ASINT--商
DECLARE@Mod2ASINT--模/余數
IF@Dec<0
RETURN'NULL'--不支持負數的轉換
SET@Div2=@Dec/2
SET@Mod2=@Dec%2
SET@BinStr=''
WHILE@Div2<>0
BEGIN
SET@BinStr=CAST(@Mod2ASCHAR(1))+@BinStr
SET@Dec=@Dec/2
SET@Div2=@Dec/2
SET@Mod2=@Dec%2

END;
SET@BinStr=CAST(@Mod2ASCHAR(1))+@BinStr--至此,已完成十進制到二進制的轉換
IF@StrLen>LEN(@BinStr)--如果用戶指定的長度大於實際長度,則需要左邊補0
BEGIN
IF@StrLen>31--返回的長度,最長為32
SET@StrLen=31

DECLARE@ZeroStrVARCHAR(31)--需要補充的"0000..."
DECLARE@OffsetLenTINYINT--需要補充幾個"0"
SET@ZeroStr=''
SET@OffsetLen=@StrLen-LEN(@BinStr)

WHILE@OffsetLen>0
BEGIN
SET@ZeroStr=@ZeroStr+'0'
SET@OffsetLen=@OffsetLen-1
END

SET@BinStr=@ZeroStr+@BinStr
END
RETURN@BinStr
END

調用函數

select[dbo].[Dec2Bin](3,8)

其中3是要轉換的數字,8是最後二進制的長度,不足位的前補0

Ⅱ sqlserver關於數據類型轉換的問題

價格用Money類型啊,干嗎要那麼麻煩
就算你不用Money,你也可以直接定義為int 或者Double

sql中數據類型轉換
CAST 和 CONVERT
將某種數據類型的表達式顯式轉換為另一種數據類型。CAST 和 CONVERT 提供相似的功能。
語法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
例子:
CONVERT(char(20), ytd_sales)
CAST(ytd_sales AS char(20))

Ⅲ sqlserver資料庫格式轉換問題,高手請進!! 謝謝

AdobeReader7.07官方簡體中文版(PDF閱讀器)MDF是SQLServer資料庫文件.mdf和.mds,其實用daemon將這個文件變成光碟里的文件不是很好用的,我曾經試過的!最好是用東方光碟機魔術師2003版將這個文件變成光碟文件,光碟里會有個很大的文件.mdf,再次把這個.mdf虛擬成光碟,成功之後,在虛擬光碟機里找到所有的文件,選擇全部,將它們復制到剛才你解壓縮三個文件的文件夾內,覆蓋他們!你可以發現,那個文件夾里很容易看出的東西,文件名是CD1(可能是),只要是這樣的話,你就成功了在Alcohol120%中雙擊要載入mds文件(mdf文件的內容自動載入了),鏡像文件就插入到了虛擬光碟機中,《洪恩寶寶問世界》中設有自動播放功能,所以它會自動在pc上播放的,而不需刻盤。如果要刻錄的話,把Alcohol120%虛擬出的光碟機作源盤,再用nero刻錄軟體以刻錄整張光碟的方式刻錄,會得到VCD格式的,百分之百會成功。虛擬光碟機文件後綴名為*.iso,*.cue,*.bin*.cif,*.fcd,*.tao,*.,*.dfi,*.img,*.ccd,*.mgd,*.mdf,*.mds,*.cdi,*.nrg,*.vcd可用DaemonTools或Alcohol120%打開。很多軟體都產生這個DAT文件擴展名。這里說的DAT文件是指從VCD光碟中看到的,以看用電腦打開VCD光碟,可到有個MPEGAV目錄,裡面便是類似MUSIC01.DAT或AVSEQ01.DAT的文件。這個DAT文件也是MPG格式的,是VCD刻錄軟體將符合VCD標準的MPEG-1文件自動轉換生成的。.DAT並不是一種標准文件。許多軟體都使用這個擴展名,但文件含義不同。比如VCD文件為.DAT,而許多數據分析軟體也用這個擴展名保存數據。所以這要看具體的軟體情況來定。如果你收的email文件是WinMail.DAT,則說明它是Outlook發送的TNEF格式。可以在http://www.biblet.com下載WMDecode釋放其中的文件。該軟體不需要安裝,直接將WMDecode.exe拷貝到計算機中就可以。運行的時候在命令行運行:WMDecode你的.dat文件名更詳細的說明請參考ReadMe文件。想打開它用「豪傑解霸」或「暴風影音」等播放器都行。這兩個播放器在網上到處都有。也可以用「記事本」試試

Ⅳ SqlServer 行列轉換

目前除了povit沒什麼別的好方法,你也可以去report
server
裡面的矩陣看看,這個東西性能平時很少有人關注

Ⅳ 如何將sql 中十六進制轉換十進制

利用SQLSERVER中的varbinary來間接實現。
16進制字元串轉10進制bigint(0-FFFFFFFFFFFFFFFF):
由於二進制比較容易轉換為bigint 所以先將字元串轉為二進制varbinary,再轉換為10進制

1
2
3
4
5
6
7
8

CREATE function [dbo].[hextoint](@s varchar(16))
returns bigint
begin
declare @result bigint
set @result=CONVERT(bigint, CONVERT(varbinary, CAST(N'0x' + @s AS char), 1))--最簡單有效的方法
return @result
END
GO

10進制轉16進制字元串(bigint正負數都可以):相同的思路目前可以將二進制varbinary轉換為字元串比較容易,那麼先將10進制轉二進制再進行16進制字元串輸出

1
2
3
4
5
6
7
8
9

CREATE function [dbo].[inttohex](@num bigint)
returns varchar(16)
begin
declare @num2 varbinary(8),@r varchar(50)
set @num2=convert(varbinary(8),@num)--直接轉換為二進制
set @r= dbo.varbin2hexstr(@num2)--二進制轉16進制字元串
return @r
end
GO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

CREATE function [dbo].[varbin2hexstr](
@bin varbinary(8000)
)returns varchar(8000)
as
begin
declare @re varchar(8000),@i int
select @re='',@i=datalength(@bin)
while @i>0
select @re=substring('0123456789ABCDEF',substring(@bin,@i,1)/16+1,1)
+substring('0123456789ABCDEF',substring(@bin,@i,1)%16+1,1)
+@re
,@i=@i-1
-- return('0x'+@re)
return @re
end
GO

以上代碼測試環境WIN2003+SQLSERVER2008

Ⅵ sqlserver資料庫中img類型的二進制數據怎麼轉換成圖片,再怎麼把圖片轉換成這個類型的二進制數據

C# 保存
openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";             if(openFileDialog1.ShowDialog()==DialogResult.OK)             { 
              string fullpath =openFileDialog1.FileName;//文件路徑               FileStream fs = new FileStream(fullpath, FileMode.Open);                 byte[] imagebytes =new byte[fs.Length];                 BinaryReader br = new BinaryReader(fs); 
                imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));                 //打開資料庫 
                SqlConnection con = new 
SqlConnection("server=(local);uid=sa;pwd=;database=test");                 con.Open(); 
                SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); 
                com.Parameters.Add("ImageList", SqlDbType.Image);                 com.Parameters["ImageList"].Value = imagebytes;                com.ExecuteNonQuery();                con.Close();

Ⅶ sqlserver觸發器中可以轉換十六進制么

-- 參考
Select CAST(1545374 as Binary)
--------------------------------
0x000000000017949E

Ⅷ sqlserver 日期格式轉換

--輸入201401
--月初時間
selectdateadd(day,datediff(day,0,convert(datetime,'201401'+'01',112)),0)
--月末時間
selectdateadd(ss,-1,dateadd(month,datediff(month,-1,convert(datetime,'201401'+'01',112)),0))

--輸入2014
--年初時間
selectdateadd(year,datediff(year,0,convert(datetime,'2014'+'0101',112)),0)
--年末時間
selectdateadd(ss,-1,dateadd(year,datediff(year,0,convert(datetime,'2014'+'0101',112)),0))

Ⅸ SQLSERVER數據轉換問題

Test_OldTable是包含19990101等nvarchar數據類型的表
Test_NewTable是包含DateTime數據類型的表

sql語句:
INSERT INTO Test_NewTable(NewDate)
SELECT CAST(OldDate AS DateTime)
FROM Test_OldTable

在查詢分析器中執行得到的結果是正確的。其他方法也可以的。

Ⅹ 在SQL中怎樣把二進制轉換成十進制的數據

我只知道十進制轉二進制的
function zhuan(m) '翻譯數據
for i=0 to 12
p=m mod 2
if p=1 then
have=have&i&","
end if
m=int(m/2)
if m=0 then
zhuan=have
exit function
end if
next
end function