none
Como puedo resolver la siguiente formula. RRS feed

  • Pregunta

  • Hola buenas tardes, la verdad es que soy un poco nuevo en SQL y me preguntaba si hay manera de pasar esto:

                     

    (((gasto / 1000) * 3600) * (FechaCerrado - FechaAbierto).TotalHours)

    A SQL para que en ves de resolverlo en el visual studio, insertarlo directamente con la query de Agregar registro.  


    • Editado F-bianSoft lunes, 22 de febrero de 2016 21:55 Aclarar
    lunes, 22 de febrero de 2016 21:51

Respuestas

  • La operación en SQL Server sería casi igual, simplemente tendrías que obtener el número de horas utilizando DATEDIFF.

    Simplificando un poco la fórmula:

    SELECT @gasto * 3.6 * DATEDIFF(HH, @FechaAbierto, @FechaCerrado)


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta F-bianSoft martes, 23 de febrero de 2016 21:20
    martes, 23 de febrero de 2016 8:49
  • Es perfectamene posible, salvo que no nos dices mayores detalles, asumiendo que usaras un procedimiento almacenado, solo deberias especificar que valores enviarias como parametro y a partir de ahi se puede perfectamente resolver, aunque en lo que respecta a formulas y procesamiento matematico lo mejor siempre es que lo resuelvas del lado de tu aplicacion, puesto que lenguajes como C# o cualquier otro lenguaje tienen una mayor potencia para solventar este tipo de escenarios.


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    • Marcado como respuesta F-bianSoft martes, 23 de febrero de 2016 21:20
    martes, 23 de febrero de 2016 7:36

Todas las respuestas

  • Es perfectamene posible, salvo que no nos dices mayores detalles, asumiendo que usaras un procedimiento almacenado, solo deberias especificar que valores enviarias como parametro y a partir de ahi se puede perfectamente resolver, aunque en lo que respecta a formulas y procesamiento matematico lo mejor siempre es que lo resuelvas del lado de tu aplicacion, puesto que lenguajes como C# o cualquier otro lenguaje tienen una mayor potencia para solventar este tipo de escenarios.


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    • Marcado como respuesta F-bianSoft martes, 23 de febrero de 2016 21:20
    martes, 23 de febrero de 2016 7:36
  • La operación en SQL Server sería casi igual, simplemente tendrías que obtener el número de horas utilizando DATEDIFF.

    Simplificando un poco la fórmula:

    SELECT @gasto * 3.6 * DATEDIFF(HH, @FechaAbierto, @FechaCerrado)


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta F-bianSoft martes, 23 de febrero de 2016 21:20
    martes, 23 de febrero de 2016 8:49
  • Hola, gracias por responder, efectivamente lo hago con proedimiento almacenado y habia pensado en manipularlo desde la aplicacion y lo he intentado hacer en C#, con el siguiente codigo:

                   

    private void CalcularVolumen()
            {
                BitPuntoEntrada b = bBitPuntoEntrada.GetBitPunAnterior();
                if (!String.IsNullOrEmpty(b.Gasto.ToString()))
                {
                decimal gasto = b.Gasto;
                Volumen = ((gasto * 3.6) * (Convert.ToDecimal((Convert.ToDateTime(b.FechaHoraC) - Convert.ToDateTime(b.FechaHoraA)).TotalHours));

                }
            }

    Pero me marca error con el operador '*' que no puede ser usado en double o decimal. Al menos que le ponga el convert.toDecimal a las fechas, pero entonces el calculo sale mal. Algun consejo?

    martes, 23 de febrero de 2016 21:25
  • Hola, muchas gracias por la ayuda, lo he probado y funciona!, habia intentado hacerlo pero se me desbordaba al momento hacer el calculo tal vez mandaba mal los datos. De cualquier manera muchas gracias!
    martes, 23 de febrero de 2016 21:27