none
Función Floor en SQL Server RRS feed

  • Pregunta

  • Necesitaba hacer un cálculo en SQL Server y posteriormente lo aplicaría a un procedimiento almacenado.  El asunto es que haciendo pruebas, me encontré con dos resultados distintos al aplicar la función de dos formas distintas.  El código es:

    declare @x decimal = 5.5

    select floor(@x), floor(5.5)

    Al ejecutar el select, me entrega en el primer caso el valor 6 y en el segundo un valor 5.

    ¿Alguien sabe cual es mi error?

    Gracias

    Luis

    viernes, 5 de marzo de 2021 15:36

Respuestas

  • La clave está aquí:

    declare @x decimal = 5.5
    print @x

    Verás que te imprime 6.

    Es decir, el problema no está en la función Floor, sino en que el tipo decimal no está guardando los decimales.

    Prueba a cambiarlo así:

    declare @x decimal(10,2) = 5.5

    y verás que ahora todo funciona como esperas.

    • Propuesto como respuesta Javi Fernández F viernes, 5 de marzo de 2021 18:13
    • Marcado como respuesta Alterno_luis viernes, 5 de marzo de 2021 20:23
    viernes, 5 de marzo de 2021 17:45

Todas las respuestas

  • La clave está aquí:

    declare @x decimal = 5.5
    print @x

    Verás que te imprime 6.

    Es decir, el problema no está en la función Floor, sino en que el tipo decimal no está guardando los decimales.

    Prueba a cambiarlo así:

    declare @x decimal(10,2) = 5.5

    y verás que ahora todo funciona como esperas.

    • Propuesto como respuesta Javi Fernández F viernes, 5 de marzo de 2021 18:13
    • Marcado como respuesta Alterno_luis viernes, 5 de marzo de 2021 20:23
    viernes, 5 de marzo de 2021 17:45
  • Gracias Javi

    Ese era el problema

    viernes, 5 de marzo de 2021 20:26