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

#6 Alejandro Mesa
19/02/2005 - 03:33 | Informe spam
Ulises,

El EURO se cotizo hoy a $1.3067

http://biz.yahoo.com/ap/050218/dollar_4.html

http://www.economista.com.mx/online4.nsf/(all)/2BC6E094AD05238806256FAC0056DB3E?OpenDocument

http://mx.news.yahoo.com/050218/7/1d6ex.html


AMB



"ulises" wrote:

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
#7 ulises
19/02/2005 - 05:12 | Informe spam
Sí, y aquí en Lima lo tenemos a 6 dígitos, pero eso no es un importe
monetario, representa una tasa de cambio, si voy a cualquier banco a
cambiar 1 euro me darán su valor redondeado a dos decimales y no a los
6 dígitos.

Saludos,
Ulises

On Fri, 18 Feb 2005 18:33:03 -0800, "Alejandro Mesa"
wrote:

Ulises,

El EURO se cotizo hoy a $1.3067

http://biz.yahoo.com/ap/050218/dollar_4.html

http://www.economista.com.mx/online4.nsf/(all)/2BC6E094AD05238806256FAC0056DB3E?OpenDocument

http://mx.news.yahoo.com/050218/7/1d6ex.html


AMB



"ulises" wrote:

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
#8 Alejandro Mesa
20/02/2005 - 02:03 | Informe spam
Ulises,

No dije que era un importe monetario. Lo que trate de decir es que su uso
implica valores de transacciones con mas de dos decimales. Dependiendo de los
requerimientos de la aplicacion (o requerimientos del usuario) esos valores
pudieran guardarse con mas o menos precision. Solo voy a ponerte un ejemplo.
Todavia en el anio 2000, en las bolsas de valores de los Estados Unidos, se
hacian transacciones de hasta 1/32avo de la moneda. Este valor 1/32 requiere
cinco digitos decimales para su representacion, por lo que muchas
aplicaciones de esta area, representavan estas transacciones monetarias (YHOO
- 35 1/8) usando NUMERIC / DECIMAL con una escala de cinco. Desde el anio
2001, creo que a partir de Abril (no recuerdo), se implemento la
decimalizacion (representar valores de acciones usando dos decimales) y por
su puesto las aplicaciones cambiaron tambien. Si para ustedes es suficiente
representando los valores monetarios con dos decimales, perfecto, pero eso no
quita que si alguien quiera o necesita representar esos valores con mas
presicion, que puedan usar tipo de dato money o usar el mismo NUMERIC con mas
de dos decimales.


AMB


"ulises" wrote:

Sí, y aquí en Lima lo tenemos a 6 dígitos, pero eso no es un importe
monetario, representa una tasa de cambio, si voy a cualquier banco a
cambiar 1 euro me darán su valor redondeado a dos decimales y no a los
6 dígitos.

Saludos,
Ulises

On Fri, 18 Feb 2005 18:33:03 -0800, "Alejandro Mesa"
wrote:

>Ulises,
>
>El EURO se cotizo hoy a $1.3067
>
>http://biz.yahoo.com/ap/050218/dollar_4.html
>
>http://www.economista.com.mx/online4.nsf/(all)/2BC6E094AD05238806256FAC0056DB3E?OpenDocument
>
>http://mx.news.yahoo.com/050218/7/1d6ex.html
>
>
>AMB
>
>
>
>"ulises" wrote:
>
>> 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
#9 Salvador Ramos
21/02/2005 - 13:09 | Informe spam
Si, es que yo soy muy extricto para ese tipo de cálculos :-)

La verdad que hace mucho tiempo (aun no existía sql server) tuve problemas
con descuadres, que desaparecieron al cambiar los tipos de datos.

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:
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
#10 Salvador Ramos
21/02/2005 - 13:11 | Informe spam
Si, yo he trabajado en aplicaciones para la banca (allí si que había que
afinar bien con los decimales :-P), y para los tipos de cambios utilizabamos
6 decimales. Cuando me refería a utilizar los decimales de la divisa es para
importes 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:
Ulises,

El EURO se cotizo hoy a $1.3067

http://biz.yahoo.com/ap/050218/dollar_4.html

http://www.economista.com.mx/online4.nsf/(all)/2BC6E094AD05238806256FAC0056DB3E?OpenDocument

http://mx.news.yahoo.com/050218/7/1d6ex.html


AMB



"ulises" wrote:

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
>> >>
>> >>
>> >>
>> >>
>>
>>
>>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida