Conversiones binario, octal y hexadecimal a decimal en SQL Server

admin

July 20, 2009

SQL SERVER

1 Comment

Como continuación del anterior artículo, esta vez veremos como convertir de cualquier base numérica (hexadecimal, octal y binaria) a base decimal en SQL Server. A continuación presentamos el código:

Codigo T-SQL

CREATE FUNCTION dbo.udf_base_a_decimal(@S varchar(250), @Base int)

RETURNS bigint

AS

BEGIN

DECLARE @Result bigint, @i int, @P int,

@NumChars varchar(50)

— Declaramos las variables

SET @NumChars = ‘0123456789ABCDEF’

SET @Result = 1

SET @S = UPPER(@S)

SET @i = 1

— Validamos las bases

IF ( (@Base = 2) OR (@Base = 8) OR (@Base = 16) OR (@Base = 10) )

BEGIN

SET @Result = 0

— Iniciamos el ciclo

WHILE ( @i <= LEN(@S) )

BEGIN

SET @P = CHARINDEX(SUBSTRING(@S,@i,1),@NumChars)

IF ( (@P = 0) OR (@P > @Base) )

BEGIN

SET @Result = 1

BREAK

END

SET @Result = @Result + (@P 1) * (POWER(@Base,(LEN(@S) @i)))

SET @i = @i + 1

END

END

RETURN @Result

END

GO

La forma de usar esta función es:

Codigo T-SQL

SELECT dbo.udf_base_a_decimal(‘1000111010100’,2)

SELECT dbo.udf_base_a_decimal(‘10724’, 8)

SELECT dbo.udf_base_a_decimal(’11D4′, 16)

Los resultados obtenidos

Resultados T-SQL

——————–
4564

(1 row(s) affected)

——————–
4564

(1 row(s) affected)

——————–
4564

(1 row(s) affected)

Es todo por ahora, nos leeremos la próxima.

Related Posts

Conexión a Sql Server con Php 5.6 linux CentOS 6

admin

March 28, 2016

PHP, SQL SERVER

No Comment

Para conectarse a Sql Server desde linux utilizamos este comando para instalar el driver: [bash] $ sudo yum install -y php-mssql [/bash] Por ejemplo, para php5.6: [bash] $ sudo yum install -y php56w-mssql [/bash] Esta instrucción instala freetds, una colección de librerias para conectarnos con Sql Server desde linux. Con esta librería no solo podemos […]

Read More

Scripts de creación de objetos en Sql Server

admin

March 28, 2016

SQL SERVER

No Comment

La manera correcta de crear scripts en Sql Server para la creación de objetos, como tablas, procedimientos almacenados, funciones, restricciones, etc., es la siguiente: Primero, verificar si existe el objeto existe. Si existe, eliminarlo. Posteriormente, crear el objeto. Posteriormente, repetir para los objetos que dependen del que acabamos de crear. **Importante** Establecer siempre la base […]

Read More

1 Comment

  • Alex on March 14, 2011

    SQL Server es programa muy interesante. Una vez teni la problema parecida a fortunamente teni exito arreglar ella por la utiliza proxima que tiene muchas posibilidades – reparar base de datos sql 2000.

Leave a Reply

Your email address will not be published. Required fields are marked *

Busca en el blog aqui

Herramientas Útiles

Suscribete al blog

Recibe en tu correo las últimas publicaciones

Publicidad

Sígueme en Twitter