Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

tipo dato con coma

Estas en el tema de tipo dato con coma en el foro de PostgreSQL en Foros del Web. No se cual es el tipo de dato más acertado para guardar números con coma y dos decimales. Muchas gracias....
  #1 (permalink)  
Antiguo 17/04/2009, 02:33
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 15 años, 5 meses
Puntos: 5
tipo dato con coma

No se cual es el tipo de dato más acertado para guardar números con coma y dos decimales.

Muchas gracias.
  #2 (permalink)  
Antiguo 17/04/2009, 06:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: tipo dato con coma

Existen:
real 4bytes con precisión de 6 decimales.
numeric Sin limite con los decimales que requieras.
Decimal Sin limite con los decimales que requieras.
bouble precision 8 bytes con precisión de 15 decimales.

Para tu caso podría ser el tipo de datos decimal que se compone de dos parámetros.
decimal(precision,scale)
Donde precision es la totalidad de digitos del numero, y scale el numero de decimales de precision.
Sin embargo, este tipo de datos tiene a ser mas lento que otros tipos de datos. Puedes considerar
el uso de float y redondearlo al 2 decimales en caso de que lo requieras.

Fuente:
http://www.postgresql.org/docs/8.2/s...e-numeric.html
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 17/04/2009 a las 07:52
  #3 (permalink)  
Antiguo 17/04/2009, 09:26
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: tipo dato con coma

Lo de la coma, ya depende de ti cuando vayas a presentar el dato frente al usuario, solo es cuestion de darle el formato adecuado con el lenguaje que estes utilizando
  #4 (permalink)  
Antiguo 12/09/2009, 06:17
Avatar de nekcab  
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: tipo dato con coma

Cita:
Iniciado por Sergestux
"...solo es cuestion de darle el formato adecuado con el lenguaje que estes utilizando"
El caso es que estoy intentando introducir datos desde un archivo desde línea de comandos de Postgree, y precisamente el campo que incluye una coma como separador decimal -numeric(5,3)- me da el error:
Cita:
Iniciado por Postgres
"La sintaxis de entrada no es válida para el tipo numeric"
Y el caso es que el S.O. (Windows) tiene especificado la coma como separador de decimales.

De hecho, googleando me encuentro un montón de foros que dicen lo mismo:
Cita:
depende del S.O. la especificación del separador de decimales
Pero Postgree no parece que le haga mucho caso a mi Xp.... ¿Alternativas?

Última edición por nekcab; 12/09/2009 a las 06:25
  #5 (permalink)  
Antiguo 12/09/2009, 09:13
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: tipo dato con coma

describe bien el problema nekcab...
no logro entender bien donde tienes problema.

La coma en la declaración de la tabla te genera problemas en el archivo de importación?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 12/09/2009, 12:33
Avatar de nekcab  
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: tipo dato con coma

A ver si ahora si:

Importo datos a mi B.D. a través del comando "copy" y un archivo externo (preparado a tal efecto). Hasta ahí bien.

El caso es que uno de los campos le he dado formato: "numeric(5,3)" pero en el archivo externo en cuestión, los decimales utilizan COMA como separador de decimales. Y al importar me da el error anteriormente descrito.

Ah, y en el sistema operativo se ha especificado la COMA como separador de decimales.
  #7 (permalink)  
Antiguo 12/09/2009, 12:47
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: tipo dato con coma

no te funcionaria un simple reemplazo de comas por puntos en cualquier editor de texto donde abras el archivo?
  #8 (permalink)  
Antiguo 12/09/2009, 13:21
Avatar de nekcab  
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: tipo dato con coma

Cita:
Iniciado por Sergestux Ver Mensaje
no te funcionaria un simple reemplazo de comas por puntos en cualquier editor de texto donde abras el archivo?
El problema es que hay otros campos que incluyen comas y no querría perderlos también....
  #9 (permalink)  
Antiguo 12/09/2009, 22:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: tipo dato con coma

cambia a varchar o text el camp mientras haces la importación.
Cuando los datos esten insertados, lo restableces con un alter table.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #10 (permalink)  
Antiguo 13/09/2009, 04:07
Avatar de nekcab  
Fecha de Ingreso: noviembre-2004
Mensajes: 223
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: tipo dato con coma

Tras el cambio de formato de campo, sí que introduzco los datos, pero, luego no me permite dejarlo en modo numérico.
Nada, el caso es que recuerdo que el paso brusco en un campo Postgre SQL de letra a número (puede que me falle la memoria) siempre me dió problemas:
Cita:
musica=# alter table titulos alter column size type varchar(5);
ALTER TABLE
musica=# copy titulos from 'aaa.csv' CSV header delimiter ';';
COPY 537
musica=# alter table titulos alter column size type numeric(5,2);
ERROR: la columna «size» no puede convertirse al tipo «pg_catalog.numeric»
Y curiosamente, una vez realizados todos estos pasos, ya no me deja deshacer lo andado (incluso borrando los nuevos registros que introduje tras el cambio a VARCHAR ), y el campo "SIZE" se tiene que quedar como VARCHAR nada más.
  #11 (permalink)  
Antiguo 13/09/2009, 11:12
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: tipo dato con coma

prueba así:

musica=# alter table titulos alter column size type numeric(5,2) using size::numeric;

nos cuentas como te va
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:28.