Programación General > Bases de Datos
Sumar Horas En Sentencia Sql
UserCode:
Hola por aquí por este foro de Bd nuevamente
No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ????
Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto.
Ahora viene el muy... :angry: que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible.
Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo).
El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades.
Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho.
Bueno a lo que venía a preguntar:
Por favor ¿Sabe alguien como sumar Horas en una sentencia SQL?
He estado intentado algo con CONVERT(DateTime, campo), DATEDIFF() y SUM(DATEPART()) pero error seguido de otro, no he logrado formar algo concreto que funcione.
Como estos datos son el todo y el protagonista del programita, tengo que preguntar, dónde lo subo (cuando esté listo) para que se lo bajen porque al ayudarme a resolver estos problemas, practicamente es como si el programa fuese de todos, aun saliendo del paso de algunos problemitas antes presentados sin consultarlo por aquí, ya un par de cosas, me han ayudado a resovlerlo por aquí. Lo guardan de recuerdo :)
F_Tanori:
asi es esto :P
puedes seguir usando la funcion que te recomendo cpmario ( http://foros.solocodigo.com/index.php?showtopic=28885 )
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] chl_tb.hora, chl_tb.hora2, DateDiff('n',[hora],[hora2]) AS direfencia
FROM chl_tb; <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
en access puedes usar las funciones incorporadas de la base de datos puedes guiarte con el generador de Expresiones
Saludos, y Suerte :comp:
Mollense:
--- Cita de: "UserCode" --- Hola por aquí por este foro de Bd nuevamente
No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ????
Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto.
Ahora viene el muy... :angry: que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible.
Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo).
El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades.
Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho.
--- Fin de la cita ---
Trabajando en relación de dependencia no creo que se pueda hacer nada :( . Pero si estás trabajando de manera independiente, de ser vos, yo le cobraría por todo el trabajo. Si tiene caprichos problema de él :whistling:
UserCode:
--- Citar --- asi es esto :P
--- Fin de la cita ---
Gracias F_Tanori, yo sé que así es esto, bien... lo de siempre, un proyecto no es ni la sombra de lo que era al inicio al verlo en su final, pero si que hay que evitar y educar a la gente para que no nos hagan trabajar de más.
Pero imaginate, es com si se le dijese a unos obreros, coloquen el cemento y pongan el con cuadritos de marmol pintado, y luego de ese dia de trabajo decirles al siguiente, no muchachos miren cambio de planes, será piso de madera, ya luego de haberse hecho el duro trabajo. O a que a un Arquitecto le digan, tienes que hacer otra vez el plano estructural porque cambiaron las cosas, ni modo.
Te imaginas que toquen la puerta en la oficina y diga el jefe, que necesita un balance en Excel para una reunión a las 2:30pm, y te lo dice a las 11:45am. No puedes irte y volver porque no da el tiempo, así que te quedas para hacer eso y estar listo a la hora, pero luego llega el jefe a las 2:15 y dice, que esos datos no eran, o dice cualquier cosa que hace que tengas que volverlo a hacer todo. Ok, no hay problema te dice ya que la reunion se alargará hasta las 5pm y da tiempo de hacerlo nuevamente. Pero la hora del almuerzo, ir a casa, eso se perdio y lo hecho en esa hora, se fue al caño. Muy molesto esto.
Creo que en algunos casos esto si puede evitarse, y como vuelva a suceder, pues le recordare donda van las "ies" a esta persona.
--- Citar --- Trabajando en relación de dependencia no creo que se pueda hacer nada sad.gif . Pero si estás trabajando de manera independiente, de ser vos, yo le cobraría por todo el trabajo. Si tiene caprichos problema de él whistling.gif
--- Fin de la cita ---
El trabajo es un "triguito" (trabajo por fuera), no te preocupes, ya le informe del nuevo precio :devil:, ni loco hago esto sujeto al viejo precio.
--- Citar ---puedes seguir usando la funcion que te recomendo cpmario ( http://foros.solocodigo.com/index.php?showtopic=28885 )
SQL
SELECT chl_tb.hora, chl_tb.hora2, DateDiff('n',[hora],[hora2]) AS direfencia
FROM chl_tb;
en access puedes usar las funciones incorporadas de la base de datos puedes guiarte con el generador de Expresiones
Saludos, y Suerte :comp:
--- Fin de la cita ---
Hmmm.. no sabía que podía moldear bien (y tambien) lo del codigo en VB para una SQL, es decir, tenía el problema (a mi parecer) en tres campos distintos (VB, BD y Crystal) para resolverse, sé que existen cosas que se asemejan en sintaxis pero creo que son las ganas de ya no querer ver más este programita :hitcomp:
Voy a probar, pero ya es muy tarde por la noche, ya es el otro día hehehe... será mañana temprano.
Muchas gracias muchachos, despues les brindo unas birras en la Taberna del Bit aquí mismo en el foro más abajo :beer:
Que la fuerza esté con ustedes/vosotros :lightsabre:
-_-
UserCode:
--- Citar ---SQL
--- Código: Text --- SELECT chl_tb.hora, chl_tb.hora2, DateDiff('n',[hora],[hora2]) AS direfenciaFROM chl_tb;
--- Fin de la cita ---
Prové algo asi (sentencia de prueba):
--- Código: Text --- Select TotalHrsD, TotalHrsD, DateDiff('n', [TotalHrsD],[TotalHrsD]) As TotalHrsLbD From chl_tb;
Se ve que el mismo campo se repite, eso es porque el objetivo seria algo asi:
05:00
05:00
--------
10:00
Ahora viene algo que asusta un poco, porque es algo complicado.
Esa suma viene de irse acumulando registros mostrados en un MSFlexgrid
Si la columna tiene muchas filas pues seria algo como esto:
05:00
05:00
05:00
05:00
05:00
-------
25:00
Obviamente se ve que el resultado no puede estar en formato de hora, aunque sus datos si sean de hora. Pero esto se complica más, puesto que si llegase a existir un 05:30 entonces el resultado seria 25:30
Entonces lo que tengo que probar (y en caso de fallar preguntar por aqui) seria el intentar que el resultado sea en formato numerico decimal quedando asi:
Es decir, convertir el dato hora a numerico (pero con decimales).
05:00
05:00
05:00
05:00
05:00
-------
25
O en caso de una media hora asi:
05:00
05:00
05:00
05:30
05:00
-------
25.5 -->(sin redondeo)
Como que de formarse esto, mejor me ahorro el dolor de cabeza de cómo sería esto en las funciones de Crystal para el caso del reporte y mejor usaria la misma SQL que haria esto en VB, pero incrustandola en el reporte de Crystal y asi matar dos pajaros de un tiro.
Navegación
[#] Página Siguiente
Ir a la versión completa