Sobre tipos numericos y char a usar

18/02/2005 - 15:55 por Leopoldo Ramos | Informe spam
Saludos. Estoy comenzando en esto de sql server para ello haciendo un
sistemita sencillo.
1) Quiero saber para digamos almacenar el valor total de una factura con dos
decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado (money,
numeric, etc) ?

2) Para el caso de datos caracter como el nombre de un proveedor o una nota,
que es mas apropiado un char o un varchar ? En realidad cuando es mejor usar
un varchar que un char ?


Gracias
Leopoldo
Puerto Rico

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
18/02/2005 - 16:13 | Informe spam
Leopoldo,

1) Quiero saber para digamos almacenar el valor total de una factura con dos
decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado (money,
numeric, etc) ?



Si lo que vas a almacenar en ese campo son valores monetarios, entonces usa
MONEY. Hay algunas aplicaciones que usan NUMERIC pero son casos especificos
que requieren una precision mas alla del cuarto digito decimal (MONEY solo
soporta 4), como son casas de cambios, bolsa de valores, etc. Me he
encontrado el caso, de aplicaciones CRM de compañias bien conocidas, que usan
FLOAT, pero ojo, este tipo de datos es aproximado y sql server no garantiza
que el valor insertado en la tabla sea el mismo cuando se consulte,
especialmente los terminados .3, .6, y .7.

2) Para el caso de datos caracter como el nombre de un proveedor o una nota,
que es mas apropiado un char o un varchar ? En realidad cuando es mejor usar
un varchar que un char ?



Depende, si los valores a guardar son variables, es decir difieren en
longitud el uno del otro, o si la mayoria de las filas a insertar tendrian
valor NULL en esa columna, entonces es mejor usar VARCHAR para ahorrar
espacio en disco. Si la longitud de los valores sera aproximadamente la misma
y la posibilidad de contener valor NULL es minima, entonces CHAR sera
preferible.

Si tu aplicacion trabajara con caracteres multi lenguaje, entonces considera
la posibilidad de usar NCHAR / NVARCHAR. Si la longitud o tamaño de la nota
puede ser mayor a 8000 caracteres, entonces tendras que usar TEXT / NTEXT.


AMB

"Leopoldo Ramos" wrote:

Saludos. Estoy comenzando en esto de sql server para ello haciendo un
sistemita sencillo.
1) Quiero saber para digamos almacenar el valor total de una factura con dos
decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado (money,
numeric, etc) ?

2) Para el caso de datos caracter como el nombre de un proveedor o una nota,
que es mas apropiado un char o un varchar ? En realidad cuando es mejor usar
un varchar que un char ?


Gracias
Leopoldo
Puerto Rico




Respuesta Responder a este mensaje
#2 Salvador Ramos
18/02/2005 - 16:43 | Informe spam
Hola:

Discrepo contigo en el punto 1). Personalmente, siempre utilizo
numeric/decimal para almacenar importes en cualquier divisa, con los
decimales que necesite (habitualmente 2). El tipo money al llevar 4
decimales puede ocasionar problemas con los decimales. Yo suelo guardar los
importes en dos decimales (en mi caso porque la divisa es euro y sólo
utilizo esa), ya calculados y redondeados.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Alejandro Mesa" escribió en el
mensaje news:
Leopoldo,

1) Quiero saber para digamos almacenar el valor total de una factura con
dos
decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado
(money,
numeric, etc) ?



Si lo que vas a almacenar en ese campo son valores monetarios, entonces
usa
MONEY. Hay algunas aplicaciones que usan NUMERIC pero son casos
especificos
que requieren una precision mas alla del cuarto digito decimal (MONEY solo
soporta 4), como son casas de cambios, bolsa de valores, etc. Me he
encontrado el caso, de aplicaciones CRM de compañias bien conocidas, que
usan
FLOAT, pero ojo, este tipo de datos es aproximado y sql server no
garantiza
que el valor insertado en la tabla sea el mismo cuando se consulte,
especialmente los terminados .3, .6, y .7.

2) Para el caso de datos caracter como el nombre de un proveedor o una
nota,
que es mas apropiado un char o un varchar ? En realidad cuando es mejor
usar
un varchar que un char ?



Depende, si los valores a guardar son variables, es decir difieren en
longitud el uno del otro, o si la mayoria de las filas a insertar tendrian
valor NULL en esa columna, entonces es mejor usar VARCHAR para ahorrar
espacio en disco. Si la longitud de los valores sera aproximadamente la
misma
y la posibilidad de contener valor NULL es minima, entonces CHAR sera
preferible.

Si tu aplicacion trabajara con caracteres multi lenguaje, entonces
considera
la posibilidad de usar NCHAR / NVARCHAR. Si la longitud o tamaño de la
nota
puede ser mayor a 8000 caracteres, entonces tendras que usar TEXT / NTEXT.


AMB

"Leopoldo Ramos" wrote:

Saludos. Estoy comenzando en esto de sql server para ello haciendo un
sistemita sencillo.
1) Quiero saber para digamos almacenar el valor total de una factura con
dos
decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado
(money,
numeric, etc) ?

2) Para el caso de datos caracter como el nombre de un proveedor o una
nota,
que es mas apropiado un char o un varchar ? En realidad cuando es mejor
usar
un varchar que un char ?


Gracias
Leopoldo
Puerto Rico




Respuesta Responder a este mensaje
#3 Leopoldo Ramos
18/02/2005 - 16:46 | Informe spam
Bueno mejor explicación de ahí se daña :)

Muchisimas gracias, Alejandro.



"Alejandro Mesa" wrote in message
news:
Leopoldo,

> 1) Quiero saber para digamos almacenar el valor total de una factura con


dos
> decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado


(money,
> numeric, etc) ?

Si lo que vas a almacenar en ese campo son valores monetarios, entonces


usa
MONEY. Hay algunas aplicaciones que usan NUMERIC pero son casos


especificos
que requieren una precision mas alla del cuarto digito decimal (MONEY solo
soporta 4), como son casas de cambios, bolsa de valores, etc. Me he
encontrado el caso, de aplicaciones CRM de compañias bien conocidas, que


usan
FLOAT, pero ojo, este tipo de datos es aproximado y sql server no


garantiza
que el valor insertado en la tabla sea el mismo cuando se consulte,
especialmente los terminados .3, .6, y .7.

> 2) Para el caso de datos caracter como el nombre de un proveedor o una


nota,
> que es mas apropiado un char o un varchar ? En realidad cuando es mejor


usar
> un varchar que un char ?

Depende, si los valores a guardar son variables, es decir difieren en
longitud el uno del otro, o si la mayoria de las filas a insertar tendrian
valor NULL en esa columna, entonces es mejor usar VARCHAR para ahorrar
espacio en disco. Si la longitud de los valores sera aproximadamente la


misma
y la posibilidad de contener valor NULL es minima, entonces CHAR sera
preferible.

Si tu aplicacion trabajara con caracteres multi lenguaje, entonces


considera
la posibilidad de usar NCHAR / NVARCHAR. Si la longitud o tamaño de la


nota
puede ser mayor a 8000 caracteres, entonces tendras que usar TEXT / NTEXT.


AMB

"Leopoldo Ramos" wrote:

> Saludos. Estoy comenzando en esto de sql server para ello haciendo un
> sistemita sencillo.
> 1) Quiero saber para digamos almacenar el valor total de una factura con


dos
> decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado


(money,
> numeric, etc) ?
>
> 2) Para el caso de datos caracter como el nombre de un proveedor o una


nota,
> que es mas apropiado un char o un varchar ? En realidad cuando es mejor


usar
> un varchar que un char ?
>
>
> Gracias
> Leopoldo
> Puerto Rico
>
>
>
>
Respuesta Responder a este mensaje
#4 Alejandro Mesa
18/02/2005 - 19:17 | Informe spam
Salvador Ramos,

Discrepo contigo en el punto 1)



Estas en todo tu derecho.

No siempre los calculos monetarios dan como resultado un numero con dos
decimales y muchas veces un digito a la derecha hace la diferencia. Mi punto
es, que depende de cuan estricto se quiera ser con los calculos monetarios
para entonces escojer el uno o el otro, o incluso el mismo tipo DECIMAL pero
con mas o menos digitos en la parte decimal.

Si este calculo no fuera tan importante en un banco, inmaginate cuanto
dinero se pudiera acumular, al cabo de 100 años, quitando 0.001 del interes a
acreditar a cada cuenta.


AMB

"Salvador Ramos" wrote:

Hola:

Discrepo contigo en el punto 1). Personalmente, siempre utilizo
numeric/decimal para almacenar importes en cualquier divisa, con los
decimales que necesite (habitualmente 2). El tipo money al llevar 4
decimales puede ocasionar problemas con los decimales. Yo suelo guardar los
importes en dos decimales (en mi caso porque la divisa es euro y sólo
utilizo esa), ya calculados y redondeados.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Alejandro Mesa" escribió en el
mensaje news:
> Leopoldo,
>
>> 1) Quiero saber para digamos almacenar el valor total de una factura con
>> dos
>> decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado
>> (money,
>> numeric, etc) ?
>
> Si lo que vas a almacenar en ese campo son valores monetarios, entonces
> usa
> MONEY. Hay algunas aplicaciones que usan NUMERIC pero son casos
> especificos
> que requieren una precision mas alla del cuarto digito decimal (MONEY solo
> soporta 4), como son casas de cambios, bolsa de valores, etc. Me he
> encontrado el caso, de aplicaciones CRM de compañias bien conocidas, que
> usan
> FLOAT, pero ojo, este tipo de datos es aproximado y sql server no
> garantiza
> que el valor insertado en la tabla sea el mismo cuando se consulte,
> especialmente los terminados .3, .6, y .7.
>
>> 2) Para el caso de datos caracter como el nombre de un proveedor o una
>> nota,
>> que es mas apropiado un char o un varchar ? En realidad cuando es mejor
>> usar
>> un varchar que un char ?
>
> Depende, si los valores a guardar son variables, es decir difieren en
> longitud el uno del otro, o si la mayoria de las filas a insertar tendrian
> valor NULL en esa columna, entonces es mejor usar VARCHAR para ahorrar
> espacio en disco. Si la longitud de los valores sera aproximadamente la
> misma
> y la posibilidad de contener valor NULL es minima, entonces CHAR sera
> preferible.
>
> Si tu aplicacion trabajara con caracteres multi lenguaje, entonces
> considera
> la posibilidad de usar NCHAR / NVARCHAR. Si la longitud o tamaño de la
> nota
> puede ser mayor a 8000 caracteres, entonces tendras que usar TEXT / NTEXT.
>
>
> AMB
>
> "Leopoldo Ramos" wrote:
>
>> Saludos. Estoy comenzando en esto de sql server para ello haciendo un
>> sistemita sencillo.
>> 1) Quiero saber para digamos almacenar el valor total de una factura con
>> dos
>> decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado
>> (money,
>> numeric, etc) ?
>>
>> 2) Para el caso de datos caracter como el nombre de un proveedor o una
>> nota,
>> que es mas apropiado un char o un varchar ? En realidad cuando es mejor
>> usar
>> un varchar que un char ?
>>
>>
>> Gracias
>> Leopoldo
>> Puerto Rico
>>
>>
>>
>>



Respuesta Responder a este mensaje
#5 ulises
18/02/2005 - 22:49 | Informe spam
Al igual que Salvador prefiero manejar los valores monetarios con dos
decimales, si bien es cierto cuando dices que los cálculos pueden
tener más de dos decimales, tambien es cierto que los valores
monetarios deben ser redondeados a la mínima expresión de la divisa
determinada por el ente rector del país (que de las monedas que
conozco siempre ha sido 2).

Saludos,
Ulises
PD. En los bancos que conozco los importes de los intereses son
redondeados a dos decimales ... :)


On Fri, 18 Feb 2005 10:17:01 -0800, "Alejandro Mesa"
wrote:

Salvador Ramos,

Discrepo contigo en el punto 1)



Estas en todo tu derecho.

No siempre los calculos monetarios dan como resultado un numero con dos
decimales y muchas veces un digito a la derecha hace la diferencia. Mi punto
es, que depende de cuan estricto se quiera ser con los calculos monetarios
para entonces escojer el uno o el otro, o incluso el mismo tipo DECIMAL pero
con mas o menos digitos en la parte decimal.

Si este calculo no fuera tan importante en un banco, inmaginate cuanto
dinero se pudiera acumular, al cabo de 100 años, quitando 0.001 del interes a
acreditar a cada cuenta.


AMB

"Salvador Ramos" wrote:

Hola:

Discrepo contigo en el punto 1). Personalmente, siempre utilizo
numeric/decimal para almacenar importes en cualquier divisa, con los
decimales que necesite (habitualmente 2). El tipo money al llevar 4
decimales puede ocasionar problemas con los decimales. Yo suelo guardar los
importes en dos decimales (en mi caso porque la divisa es euro y sólo
utilizo esa), ya calculados y redondeados.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Alejandro Mesa" escribió en el
mensaje news:
> Leopoldo,
>
>> 1) Quiero saber para digamos almacenar el valor total de una factura con
>> dos
>> decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado
>> (money,
>> numeric, etc) ?
>
> Si lo que vas a almacenar en ese campo son valores monetarios, entonces
> usa
> MONEY. Hay algunas aplicaciones que usan NUMERIC pero son casos
> especificos
> que requieren una precision mas alla del cuarto digito decimal (MONEY solo
> soporta 4), como son casas de cambios, bolsa de valores, etc. Me he
> encontrado el caso, de aplicaciones CRM de compañias bien conocidas, que
> usan
> FLOAT, pero ojo, este tipo de datos es aproximado y sql server no
> garantiza
> que el valor insertado en la tabla sea el mismo cuando se consulte,
> especialmente los terminados .3, .6, y .7.
>
>> 2) Para el caso de datos caracter como el nombre de un proveedor o una
>> nota,
>> que es mas apropiado un char o un varchar ? En realidad cuando es mejor
>> usar
>> un varchar que un char ?
>
> Depende, si los valores a guardar son variables, es decir difieren en
> longitud el uno del otro, o si la mayoria de las filas a insertar tendrian
> valor NULL en esa columna, entonces es mejor usar VARCHAR para ahorrar
> espacio en disco. Si la longitud de los valores sera aproximadamente la
> misma
> y la posibilidad de contener valor NULL es minima, entonces CHAR sera
> preferible.
>
> Si tu aplicacion trabajara con caracteres multi lenguaje, entonces
> considera
> la posibilidad de usar NCHAR / NVARCHAR. Si la longitud o tamaño de la
> nota
> puede ser mayor a 8000 caracteres, entonces tendras que usar TEXT / NTEXT.
>
>
> AMB
>
> "Leopoldo Ramos" wrote:
>
>> Saludos. Estoy comenzando en esto de sql server para ello haciendo un
>> sistemita sencillo.
>> 1) Quiero saber para digamos almacenar el valor total de una factura con
>> dos
>> decimales (rango de 1 a 9999999.99), cual es el tipo mas recomendado
>> (money,
>> numeric, etc) ?
>>
>> 2) Para el caso de datos caracter como el nombre de un proveedor o una
>> nota,
>> que es mas apropiado un char o un varchar ? En realidad cuando es mejor
>> usar
>> un varchar que un char ?
>>
>>
>> Gracias
>> Leopoldo
>> Puerto Rico
>>
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida