none
Dar formato a una variable RRS feed

  • Pregunta

  • Estoy haciendo un SELECT de una Tabla "X", donde hay una columna llamada PRECIO de tipo varchar(50), los datos almacenados ahí son numero, los cuales quiero mostrar al hacer el SELECT como moneda con separador de miles y sin los decimales. Hasta el momento estoy utilizando la siguiente sintaxis 

    CONVERT(varchar, CAST(PRECIO AS money), 1) as PRECIO

    la cual me devuelve los datos de la siguiente forma

    como hago para que no aparezcan los decimales y el separador de miles sea un punto en ves de la coma.

    De antemano muchas gracias.

    martes, 18 de abril de 2017 22:16

Respuestas

  • Estimado podrias probar con esto:

        SELECT REPLACE(REPLACE(CONVERT(VARCHAR,
      CAST(Total as money),1),'.00',''),',','.') from  [Ventas].[dbo].[VentasDestino]

    Me dejas saber si te sirvio.

    Saludos!!!!

    • Propuesto como respuesta Joyce_ACModerator miércoles, 19 de abril de 2017 16:22
    • Marcado como respuesta El_vena miércoles, 19 de abril de 2017 23:39
    martes, 18 de abril de 2017 23:00

Todas las respuestas

  • El_vena,

    ¿Cuál es la versión del motor de SQL Server que ocupas?

    martes, 18 de abril de 2017 22:23
  • Microsoft SQL Server Management Studio 10.50.1600.1, sera esa la versión ?

    martes, 18 de abril de 2017 22:27
  • Hola El_vena

    Inténtalo así:

    select convert(varchar,(cast(CAST(precio AS money) as money)),1)as PRECIO

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    martes, 18 de abril de 2017 22:36
  • Microsoft SQL Server Management Studio 10.50.1600.1, sera esa la versión ?

    No, lo que adjuntas es la versión de Management Studio. Para recuperar la versión del motor de base de datos que se ejecuta en el contexto actual puedes ejecutar la instrucción:

    SELECT @@VERSION;
    GO

    Sin embargo, con independencia de la versión del motor te dejo dos consideraciones:

    - ¿por qué almacenas un valor numérico en una columna de tipo varchar(n)?, la columna debería ser del tipo decimal(p, s).

    - El formato de un valor corresponde a una tarea de la aplicación, no de la base de datos, por lo mismo te recomiendo que el formato lo otorgues desde la UI, sobre todo porque el símbolo de moneda que obtienes depende del lenguaje de la instancia actual que no precisamente se trata de la divisa del monto almacenado.

    Si precisas formatear en la consulta de selección déjanos saber la versión del motor de base de datos según la consulta adjunta.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 18 de abril de 2017 22:39
  • Lo almacene como varchar, porque aveces tenia problemas con los datos, solo por eso. 

    La versión que me arroja es esta.

    Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0

    martes, 18 de abril de 2017 22:44
  • Siguen apareciendo los decimales al final, ademas quiero que el separador de miles sea un punto 
    martes, 18 de abril de 2017 22:45
  • Estimado podrias probar con esto:

        SELECT REPLACE(REPLACE(CONVERT(VARCHAR,
      CAST(Total as money),1),'.00',''),',','.') from  [Ventas].[dbo].[VentasDestino]

    Me dejas saber si te sirvio.

    Saludos!!!!

    • Propuesto como respuesta Joyce_ACModerator miércoles, 19 de abril de 2017 16:22
    • Marcado como respuesta El_vena miércoles, 19 de abril de 2017 23:39
    martes, 18 de abril de 2017 23:00