Exactitud en numericos y fechas....

06/12/2005 - 16:33 por Dante Rodriguez | Informe spam
Tengo la siguente sentencia para sacar un porcentaje:
Select 360/500 -- y me arroja (CERO)

Si la modifico de la siguente manera:
Select 360/500 * 100 - sigue arrojando (CERO)

Pero si cambio el roden de operaciones
Select 100 * 360/500 - me arroja un resultado integer

Como puedo manejar mayor exactitud en los operacione dentro de SQL

Ahora bien, el manejo de fechas esta fatal no puedo hacer comparaciones de
fechas(Date, no DateTime)
cuanndo tengo la necesidad de hacerlo tengo que aplicar un Convert.

Necesito manejar una mayor gama de operaciones con fechas(suma, resta, etc.)
como lo puedo hacer???
__________________________
Dante A. Rodríguez Armendáriz
Logística
S D L

Preguntas similare

Leer las respuestas

#1 Maxi
06/12/2005 - 16:49 | Informe spam
Hola, dante, primero que asi no se hacen las cosas, porque digo esto: que
tipo de dato esatas usando? no lo has definido.

Proba tu query asi:

Select 360.00/500.00

Como veras no le estabas poniendo los decimales entonces el resultado es
tambien sin decimales.

Para sumar las fechas o restarlas hay ya en sql funciones, revisa: Datediff



Salu2
Maxi [MVP SQL SERVER]


"Dante Rodriguez" escribió en el mensaje
news:%23aiicon%
Tengo la siguente sentencia para sacar un porcentaje:
Select 360/500 -- y me arroja (CERO)

Si la modifico de la siguente manera:
Select 360/500 * 100 - sigue arrojando (CERO)

Pero si cambio el roden de operaciones
Select 100 * 360/500 - me arroja un resultado integer

Como puedo manejar mayor exactitud en los operacione dentro de SQL

Ahora bien, el manejo de fechas esta fatal no puedo hacer comparaciones de
fechas(Date, no DateTime)
cuanndo tengo la necesidad de hacerlo tengo que aplicar un Convert.

Necesito manejar una mayor gama de operaciones con fechas(suma, resta,
etc.)
como lo puedo hacer???
__________________________
Dante A. Rodríguez Armendáriz
Logística
S D L


Respuesta Responder a este mensaje
#2 Harold Rivas
06/12/2005 - 17:36 | Informe spam
apoyo a maxi, uno debe definir los tipos de datos correctamente, y para
menjo de fechas hay muchas funciones DATEADD, DATEDIFF, CONVERT, etc et
c, revisate los LEL (Libros En Linea o comunmente llamados BOL por Books
On Line) y veras que no es tan complicado.
Otra cosa a considerar en las operacioens matematicas es el orden de los
operadores, pk si bien

Select 100 * 360/500 te arroja un entero, es porque * o multiplicacion se ejecuta antes de un / o division, entonces seria:
100*3606,000 y luego lo divide entre 500 que resulta 72

pero si haces

Select 100 *( 360/500) te dara 0, porque primero van los parentesis lo
cual 560/500 es cero 0, y 0*100 seria 0 nuevamente.
Leete sobre esto en monografias.com o algun manualito. ;-)


Dante Rodriguez escribió:

Tengo la siguente sentencia para sacar un porcentaje:
Select 360/500 -- y me arroja (CERO)

Si la modifico de la siguente manera:
Select 360/500 * 100 - sigue arrojando (CERO)

Pero si cambio el roden de operaciones
Select 100 * 360/500 - me arroja un resultado integer

Como puedo manejar mayor exactitud en los operacione dentro de SQL

Ahora bien, el manejo de fechas esta fatal no puedo hacer comparaciones de
fechas(Date, no DateTime)
cuanndo tengo la necesidad de hacerlo tengo que aplicar un Convert.

Necesito manejar una mayor gama de operaciones con fechas(suma, resta, etc.)
como lo puedo hacer???
__________________________
Dante A. Rodríguez Armendáriz
Logística
S D L




Respuesta Responder a este mensaje
#3 Dante Rodriguez
07/12/2005 - 16:37 | Informe spam
Maxi, Gracias por tus comentarios.

Lo que pasa es que tengo un dato que es la cantidad de artículos pedidos por
una orden(500 Int) y la cantidad surtida a esa orden específica(350 Int). y
necesito que el resultado sea real (0.70).

Que se necesita hacer?? aplicar un convert antes de la operación, durante o
despues???

Disculpen si mis preguntas suenan algo novatas, pero en SQL server soy nuevo
y en las otras bases de datos que he manejado, hacen conversiones
automáticas de Int a Float y segun la tabla de conversiones de SQL tambien
deben ser aplicadas automáticamente.

Gracias,
Dante
"Maxi" wrote in message
news:OuBl5yn%
Hola, dante, primero que asi no se hacen las cosas, porque digo esto: que
tipo de dato esatas usando? no lo has definido.

Proba tu query asi:

Select 360.00/500.00

Como veras no le estabas poniendo los decimales entonces el resultado es
tambien sin decimales.

Para sumar las fechas o restarlas hay ya en sql funciones, revisa:


Datediff



Salu2
Maxi [MVP SQL SERVER]


"Dante Rodriguez" escribió en el mensaje
news:%23aiicon%
> Tengo la siguente sentencia para sacar un porcentaje:
> Select 360/500 -- y me arroja (CERO)
>
> Si la modifico de la siguente manera:
> Select 360/500 * 100 - sigue arrojando (CERO)
>
> Pero si cambio el roden de operaciones
> Select 100 * 360/500 - me arroja un resultado integer
>
> Como puedo manejar mayor exactitud en los operacione dentro de SQL
>
> Ahora bien, el manejo de fechas esta fatal no puedo hacer comparaciones


de
> fechas(Date, no DateTime)
> cuanndo tengo la necesidad de hacerlo tengo que aplicar un Convert.
>
> Necesito manejar una mayor gama de operaciones con fechas(suma, resta,
> etc.)
> como lo puedo hacer???
> __________________________
> Dante A. Rodríguez Armendáriz
> Logística
> S D L
>
>


Respuesta Responder a este mensaje
#4 Harold Rivas
07/12/2005 - 16:59 | Informe spam
declare @art_pedidos int
declare @cant_surtida int
declare @res decimal(10,2)
select
@art_pedidosP0,@cant_surtida50,@res=convert(decimal,@cant_surtida)/convert(decimal,@art_pedidos)
select @res


Dante Rodriguez escribió:

Maxi, Gracias por tus comentarios.

Lo que pasa es que tengo un dato que es la cantidad de artículos pedidos por
una orden(500 Int) y la cantidad surtida a esa orden específica(350 Int). y
necesito que el resultado sea real (0.70).

Que se necesita hacer?? aplicar un convert antes de la operación, durante o
despues???

Disculpen si mis preguntas suenan algo novatas, pero en SQL server soy nuevo
y en las otras bases de datos que he manejado, hacen conversiones
automáticas de Int a Float y segun la tabla de conversiones de SQL tambien
deben ser aplicadas automáticamente.

Gracias,
Dante
"Maxi" wrote in message
news:OuBl5yn%


Hola, dante, primero que asi no se hacen las cosas, porque digo esto: que
tipo de dato esatas usando? no lo has definido.

Proba tu query asi:

Select 360.00/500.00

Como veras no le estabas poniendo los decimales entonces el resultado es
tambien sin decimales.

Para sumar las fechas o restarlas hay ya en sql funciones, revisa:




Datediff



Salu2
Maxi [MVP SQL SERVER]


"Dante Rodriguez" escribió en el mensaje
news:%23aiicon%


Tengo la siguente sentencia para sacar un porcentaje:
Select 360/500 -- y me arroja (CERO)

Si la modifico de la siguente manera:
Select 360/500 * 100 - sigue arrojando (CERO)

Pero si cambio el roden de operaciones
Select 100 * 360/500 - me arroja un resultado integer

Como puedo manejar mayor exactitud en los operacione dentro de SQL

Ahora bien, el manejo de fechas esta fatal no puedo hacer comparaciones






de


fechas(Date, no DateTime)
cuanndo tengo la necesidad de hacerlo tengo que aplicar un Convert.

Necesito manejar una mayor gama de operaciones con fechas(suma, resta,
etc.)
como lo puedo hacer???
__________________________
Dante A. Rodríguez Armendáriz
Logística
S D L














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