MSSQL 进制转换
-- 任意进制转换为10进制
-- 例 0FA 转换为 16进制 select dbo.f_BinaryToInt('0123456789ABCDEF', '0FA')
CREATE function dbo.f_BinaryToInt(@BinaryFormate varchar(100), @num varchar(200))
--@BinaryFormate 为自定义的进制格式
--@num 为要转换成10进制的自定义进制数
--16进制格式 0123456789ABCDEF
returns DECIMAL(18, 0)
as
BEGIN
declare @result DECIMAL(18, 0), @Binary int, @V char(1), @len int, @value int
SELECT @result=0, @Binary = LEN(@BinaryFormate), @len = 0
SET @num = rtrim(ltrim(upper(reverse(@num)))) --为方便计算,将字符串反向
WHILE @len < LEN(@Num)
BEGIN
SET @V = SUBSTRING(@num, @len + 1, 1)
SET @value = CHARINDEX(@v, @BinaryFormate) -1
SET @result = @value*power(@Binary, @len) + @result
SET @len = @len + 1
END
return(@result)
END
-- 10进制转换为任意进制
-- 例 250 转换为 3位16进制 select dbo.f_IntToBinary('0123456789ABCDEF', 250, 3)
CREATE function dbo.f_IntToBinary(@BinaryFormate varchar(100), @num int, @len int)
--@BinaryFormate 为自定义的进制格式
--@num 为要转换成自定义进制的10进制数
--@len为转换后占用的位数
--16进制格式 0123456789ABCDEF
returns varchar(200)
as
BEGIN
declare @result varchar(200), @Binary int
set @result=''
SET @Binary = LEN(@BinaryFormate)
WHILE LEN(@result)<@len
select @result=substring(@BinaryFormate,@num%@Binary+1,1)+@result,@num=@num/@Binary
return(@result)
END
相关文档:
PHP读取MYSQL数据库或MSSQL数据库时,有时出现乱码,这是PHP.ini中配置和.php页面编码不一致引起的。
解决办法:
1、首先,将PHP.ini中设置为default_charset = "gb2312",然后重启Apache。
这时从数据库中提取的结果集可以正常显示中文了,但.php页面中的列名也有可能显示乱码了。这样解决,
2、然后,PH ......
public sealed class DbOper
{
///<summary>
/// DbOper类的构造函数
///</summary>
private DbOper()
{
}
......
MSSQL 如何实现 MySQL 的 limit 查询方式
不知为何,MSSQL 中没有 limit 这个极为重要的查询方式,熟悉 MySQL 的朋友都知道,MySQL 的 limit 对于实现分页和一些限制结果集的应用中非常方便。没有不要紧,我们可以用其他方法达到同样的目的,自己动手,丰衣足食!
语法:
Code:
SELECT * from
(
......
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[temp_Table]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[temp_Table]
GO
CREATE TABLE [dbo].[temp_Table] (
[id]&n ......