Principales respuestas
Formatear números

Pregunta
-
Buenos días, mi consulta es la siguiente:
si podría formatear desde transact para que mi store devuelva todos los números con el siguiente formato: miles,enteros.decimales
Ejemplo: 5,563.02
Lo e intentado en castearlo de diferentes formar, en primera instancia sí me sale cuando no lo pruebo en mi store, y al hacerlo éste no me devuelve cómo yo quisiera, tengo 2 cursores en él, no se si tenga algo que ver.
La forma en cómo casteo es esta: CAST(@metrado AS money) también ya probé con esta: CONVERT (varchar(17), CAST(metrado AS money), 1)
Agradesco su ayuda!
Lima - Perú Rafo*- Cambiado Alberto López Grande (qwalgrande)Moderator viernes, 15 de julio de 2011 7:52 Es una pregunta de Reporting Services (De:SQL Server)
Respuestas
-
En la casilla donde hayas puesto tu dato en Reporting Services puedes decirle que formato tiene, (opción format en inglés, no se como es en castellano) Si en esa opcion pones este formato #,##0.00 te aparecerá el número formateado según tu configuracion regional, es decir si tienes , como separador de miles y . como separador decimal pues así y si es de otra forma.. pues como lo tengas.
En general es mucho mejor formatear esto en la herramienta de cliente, con una única excepción, las sumas y los acumulados, si sumas algo, asegurate que lo acumulas de la misma forma, porque si muestras 2 cifras decimales, pero tu dato vale, por ejemplo 0.254 y 0.254, tu usuario verá 0,25 luego 0,25 y en total 0,51. En cuyo caso te dirá que no sabes sumar....
También puedes hacer cosas mucho más avanzadas como puedes ver aquí.
http://msdn.microsoft.com/en-us/library/ms157328.aspx
Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com- Editado Miguel Egea GómezMVP, Moderator lunes, 18 de julio de 2011 15:41 Añadir aclaración adicional
- Propuesto como respuesta Alberto PoblacionMVP, Moderator lunes, 18 de julio de 2011 16:08
- Marcado como respuesta Rafael Molina lunes, 18 de julio de 2011 16:13
Todas las respuestas
-
Rafael,
A mi entender, el formato es parte de la capa de presentacion y no de la base de datos. De seguro la herramiento de reporte o lenguaje de programacion que usas tienen la funcionalidad requerida para dar el formato deseado.
Dicho lo anterior, trata convirtiendo el valor al tipo "money" y luego a caracter.
SELECT CONVERT(varchar(35), CONVERT(money, 1234.5678), 1) AS c1; GO /* 1,234.57 */
Chequea la funcion CONVERT en los BOL, para mas info.
AMB
- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator jueves, 14 de julio de 2011 20:28
- Votado como útil Rafael Molina viernes, 15 de julio de 2011 13:17
-
Exacto, utilizo el reporting services para realizar una exportación a excel; al darle formato de número me lo formatea al reves de lo que y quiero, es decir miles.unidades,decimales (5,2012.01) cuando quisiera que sea lo contrario ..
Lima - Perú Rafo* -
Hola.
Seguramente estás tratando de resolver el problema donde no lo tienes. Me temo que el problema está en el Excel al que llevas los datos, donde las posibilidades de precisar el formato no son tan claras. Yo lo que suelo hacer es volcar como cadena de caracteres, de lo poco que Excel permite sin que haga sus conversiones. Pero yo de Excel sé muy poquito.
Si quieres, movemos el hilo al foro de Reporting Services con el fin de que en este foro te den una indicación que te permita fijar el formato que tú deseas.
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande -
-
Buenos días, mi consulta es la siguiente:
si podría formatear desde transact para que mi store devuelva todos los números con el siguiente formato: miles,enteros.decimales
Pregunta: ¿de qué TIPO es el dato que devuelve el SP? Si es un varchar, sí que lo puedes formatear y devolver con el formato que quieras. Pero si es un tipo numérico, tienes que tener en cuenta que esos tipos NO TIENEN FORMATO. Sólo devuelven el dato en binario, y el formato lo pone el programa cliente que estás usando para llamar al SP. Por lo tanto si el programa cliente es por ejemplo SQL Server Management Studio, puede ser que te lo visualice con un formato, mientras que si el programa cliente es Excel, te presente otro formato. Y esos dos formatos no dependen para nada de lo que hagas dentro del SP, mientras el tipo siga siendo numérico. La alternativa es devolver un varchar, que sí que lo puedes formatear, pero claro, en la parte cliente se tratará como un string y no como un número.
-
el tipo de dato del campo es float.. mi variables también es float, lo he estado casteando para que me lo devuelva en money y hasta e nvarchar y sí, lo devuelve; hasta en varchar en el SP me lo devuelve cómo yo lo necesito, pero al visualizarlo en el Reporting me aparece de otra forma, hasta algunos valores se me presentan en decimales..
Lima - Perú Rafo* -
En la casilla donde hayas puesto tu dato en Reporting Services puedes decirle que formato tiene, (opción format en inglés, no se como es en castellano) Si en esa opcion pones este formato #,##0.00 te aparecerá el número formateado según tu configuracion regional, es decir si tienes , como separador de miles y . como separador decimal pues así y si es de otra forma.. pues como lo tengas.
En general es mucho mejor formatear esto en la herramienta de cliente, con una única excepción, las sumas y los acumulados, si sumas algo, asegurate que lo acumulas de la misma forma, porque si muestras 2 cifras decimales, pero tu dato vale, por ejemplo 0.254 y 0.254, tu usuario verá 0,25 luego 0,25 y en total 0,51. En cuyo caso te dirá que no sabes sumar....
También puedes hacer cosas mucho más avanzadas como puedes ver aquí.
http://msdn.microsoft.com/en-us/library/ms157328.aspx
Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com- Editado Miguel Egea GómezMVP, Moderator lunes, 18 de julio de 2011 15:41 Añadir aclaración adicional
- Propuesto como respuesta Alberto PoblacionMVP, Moderator lunes, 18 de julio de 2011 16:08
- Marcado como respuesta Rafael Molina lunes, 18 de julio de 2011 16:13
-