当前位置:首页 » 编程语言 » 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