Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-10

trabajando con horas

30 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paola Bruccoleri

Hola a todos..
necesito la ayuda experta de Uds..

Tengo una tabla en Firebird con campos de este tipo, donde se guardan las hs trabajadas diariamente.
HS_OPERARIO TIME
......

Necesito hacer un reporte donde obtener obviamente la suma de horas por vehiculo, y a la vez una suma total.

Lo m�s l�gico ser�a hacer un select sum(hs_operario) from tabla.... pero en firebird esto no funciona tan as�.
He logrado obtener con sql la suma extrayendo horas, minutos, segundos, haciendo cuentas y obteniendo el resultado en formato hhh:mm:ss, pero como string.
No puedo usar un cast a tipo time porque obviamente obtendr� valores de mas de 24hs. Y se me cpmplica obtener la suma total de los renglones..

Encontr� otra forma de sumar horas pero me devuelve el resultado en segundos.
Entonces, pens� que lazreport me hiciera las cuentas y obtener el formato que yo deseo, haciendo algo de este tipo:

[ [qry."HS_TRABAJO"] / 3600 + ":"+ MOD([qry."HS_TRABAJO"], 3600)/60 + ":"+ MOD( MOD([qry."HS_TRABAJO"], 3600), 60)

pero esto no funciona as�.. adem�s, necesitar�a obtener las partes enteras de las divisiones...
Quiz�s haya que usar algo en OnUserFunction, pero no me doy cuenta de c�mo resolverlo.

Les agradezco enormemente..!
chauuuuuuuuu

Reply by email

Paola Bruccoleri
to Paola Bruccoleri

El 17/10/2010 03:04 p.m., Paola Bruccoleri escribi�:

Show quoted text 31 lines
Hola a todos.. necesito la ayuda experta de Uds.. Tengo una tabla en Firebird con campos de este tipo, donde se guardan las hs trabajadas diariamente. HS_OPERARIO TIME ...... Necesito hacer un reporte donde obtener obviamente la suma de horas por vehiculo, y a la vez una suma total. Lo m�s l�gico ser�a hacer un select sum(hs_operario) from tabla.... pero en firebird esto no funciona tan as�. He logrado obtener con sql la suma extrayendo horas, minutos, segundos, haciendo cuentas y obteniendo el resultado en formato hhh:mm:ss, pero como string. No puedo usar un cast a tipo time porque obviamente obtendr� valores de mas de 24hs. Y se me cpmplica obtener la suma total de los renglones.. Encontr� otra forma de sumar horas pero me devuelve el resultado en segundos. Entonces, pens� que lazreport me hiciera las cuentas y obtener el formato que yo deseo, haciendo algo de este tipo: [ [qry."HS_TRABAJO"] / 3600 + ":"+ MOD([qry."HS_TRABAJO"], 3600)/60 + ":"+ MOD( MOD([qry."HS_TRABAJO"], 3600), 60) pero esto no funciona as�.. adem�s, necesitar�a obtener las partes enteras de las divisiones... Quiz�s haya que usar algo en OnUserFunction, pero no me doy cuenta de c�mo resolverlo.

Bueno.... siguiendo con esto, he logrado casi casi todo...

este sql
SELECT SUM(hs_trabajo - cast('0:0' as time)) FROM tabla

me devuelve la suma en segundos.

En el lazreport hago esto:
[STR(INT([qry."HS_TRABAJO"] / 3600))]:[STR(INT([qry."HS_TRABAJO"] mod
3600) / 60))]:[STR((([qry."HS_TRABAJO"] mod 3600) mod 60))]

y obtengo en formato de horas..

estuve mirando la funci�n FORMATTEXT para que cuando es una hora, min o seg de 1 d�gito me agregue el 0 a la izquierda, haciendo esto: FORMATTEXT('00', .....) o FORMATTEXT ('##',...) pero me salta error invariant type.... No he encontrado info con sintaxis de las m�scaras a aplicar all�.

Ahora, esto lo debo hacer con varios campos de este tipo.. y encima, al final del reporte, obtener la suma de las columnas. �habr� alguna forma de poner en una funci�n en lazarus toda esta conversi�n?

muchas gracias
chauuuuuuuuu

Reply by email

José Mejuto
to Paola Bruccoleri: Hola a todos.. necesito la ayuda experta de Uds.. Tengo una tabla en Firebird con campos…

Hello Paola,

Sunday, October 17, 2010, 8:04:32 PM, you wrote:

PB> Hola a todos..
PB> necesito la ayuda experta de Uds..
PB> Tengo una tabla en Firebird con campos de este tipo, donde se guardan PB> las hs trabajadas diariamente.
PB> HS_OPERARIO TIME
PB> ......
PB> Necesito hacer un reporte donde obtener obviamente la suma de horas por PB> vehiculo, y a la vez una suma total.

Prueba con esta "chapuza" :

Select
Cast(secs/3600 - 0.499999999999 as INTEGER) as Hours, Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as INTEGER) as Minutes, secs- (Cast(secs/3600 - 0.499999999999 as INTEGER)*3600+Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as INTEGER)*60) as Seconds from (
select SUM(TIME_FIELD - cast('0:0' as time)) as secs from TTABLE )

Best regards, Jos�

Reply by email

christian Ortiz
to José Mejuto
Show quoted text 13 lines
Select Cast(secs/3600 - 0.499999999999 as INTEGER) as Hours, Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as INTEGER) as Minutes, secs- (Cast(secs/3600 - 0.499999999999 as INTEGER)*3600+Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as INTEGER)*60) as Seconds from ( select SUM(TIME_FIELD - cast('0:0' as time)) as secs from TTABLE ) Se tiene que hacer tanta cosa en Firebird???? ya se que motor de bd no debo

usar ....

Show quoted text 10 lines
-- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101017/a01cc833/attachment-0001.html>

Reply by email

José Mejuto
to christian Ortiz

Hello christian,

you wrote 12 lines
> Select > Cast(secs/3600 - 0.499999999999 as INTEGER) as Hours, > Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - > 0.499999999999 as INTEGER) as Minutes, > secs- (Cast(secs/3600 - 0.499999999999 as INTEGER)*3600+Cast((secs - > Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as > INTEGER)*60) as Seconds > from ( > select SUM(TIME_FIELD - cast('0:0' as time)) as secs > from TTABLE ) > > Se tiene que hacer tanta cosa en Firebird???? ya se que motor de bd no debo

cO> usar ....

No hombre, es que los campos TIME no se pueden sumar, ni en Firebird ni en nada. Se soluciona f�cilmente con una "stored procedure" o m�s f�cil a�n con una UDF. Eso es si se quiere hacer con un "select" sin m�s cosas.

No puedes usar un campo TIME por que la suma puede pasar de 24 horas, l�mite m�ximo para la hora de TIME.

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

El 17/10/2010 07:34 p.m., Jos� Mejuto escribi�:

Show quoted text 25 lines
Hello christian, Monday, October 18, 2010, 12:14:58 AM, you wrote: >> Select >> Cast(secs/3600 - 0.499999999999 as INTEGER) as Hours, >> Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - >> 0.499999999999 as INTEGER) as Minutes, >> secs- (Cast(secs/3600 - 0.499999999999 as INTEGER)*3600+Cast((secs - >> Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as >> INTEGER)*60) as Seconds >> from ( >> select SUM(TIME_FIELD - cast('0:0' as time)) as secs >> from TTABLE ) >> >> Se tiene que hacer tanta cosa en Firebird???? ya se que motor de bd no debo cO> usar .... No hombre, es que los campos TIME no se pueden sumar, ni en Firebird ni en nada. Se soluciona f�cilmente con una "stored procedure" o m�s f�cil a�n con una UDF. Eso es si se quiere hacer con un "select" sin m�s cosas. No puedes usar un campo TIME por que la suma puede pasar de 24 horas, l�mite m�ximo para la hora de TIME.

estaba mirando ahora la udf freeadhocudf, que tiene una funcion F_SECONDS2PERIOD que aunque no es exactamente lo que quiero, podr�a servirme y no logro que me la reconozca (coloqu� la dll en la carpeta udf de firebird y reinicie el servidor). Las pruebas las hago usando ibexpert.

De todas formas, tb me sirve un store procedure, peor no he dado en la tecla..
chauuuuuuuuu

Reply by email

José Antonio Cuello
to José Mejuto: PB> Hola a todos.. PB> necesito la ayuda experta de Uds.. PB> Tengo una tabla en…

Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo luego en lazarus con un formatdatetime?

Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE

Un saludo.

________________________________________________________________________

ARTEX TRADING S.A.
Jos� Antonio Cuello Principal

El lun, 18-10-2010 a las 00:03 +0200, Jos� Mejuto escribi�:

Show quoted text 10 lines
Select Cast(secs/3600 - 0.499999999999 as INTEGER) as Hours, Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as INTEGER) as Minutes, secs- (Cast(secs/3600 - 0.499999999999 as INTEGER)*3600+Cast((secs - Cast(secs/ 3600 - 0.499999999999 as INTEGER)*3600)/ 60 - 0.499999999999 as INTEGER)*60) as Seconds from ( select SUM(TIME_FIELD - cast('0:0' as time)) as secs from TTABLE )

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/b40aa6f7/attachment.html>

Reply by email

José Mejuto
to José Antonio Cuello

Hello Jos�,

Monday, October 18, 2010, 8:30:35 AM, you wrote:

JAC> Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo JAC> luego en lazarus con un formatdatetime?
JAC> Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE

Y en qu� formato dar�a el resultado ? :)Necesitar�a un formato nuevo tipo "TIMEPERIOD" que fuera "days hh:mm:ss" o un time con posibilidad de m�s de 24 horas.

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Antonio Cuello: Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo luego en…

El 18/10/2010 03:30 a.m., Jos� Antonio Cuello escribi�:

Show quoted text 5 lines
Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo luego en lazarus con un formatdatetime? Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE

Hola Jos�..
esto no funciona!
el ibexpert me tira este error:

This operation is not defined for system tables.
Dynamic SQL Error.
SQL error code = -607.
Invalid command.
Specified domain or source column DATETIME does not exist.

De todas maneras, con que me devuelva la suma en segundos me conformo; y eso ya lo logr�.

La cuesti�n ahora es con el lazreport, si ves uno de mis �ltimos mensajes ver�s que ya logr� el cometido, pero quiero ver de optimizarlo y mejorar el formato.

Aplicaciones que manejen horas hay montones... imaginen los de liquidaci�n de sueldos y jornales, donde se deben sumar las horas trabajadas de un jornalero para pagarle a fin de mes!!!... no creo que estas cosas no se puedan hacer con estos motores de bases de datos!!.. la cosa es c�mo lo resuelven. Yo es la primera vez que me topo con estos campos time.

chauuuuuuuuuuu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/36857895/attachment.html>

Reply by email

José Antonio Cuello
to José Mejuto: JAC> Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo JAC>…

Pues recuerdo haberlo hecho ... al hacer el cast el campo resultante del SUM es un Date o Datetime (esta es la parte que no recuerdo) y el "datetime" permite m�s de 24 horas.

Un saludo.

________________________________________________________________________

ARTEX TRADING S.A.
Jos� Antonio Cuello Principal

El lun, 18-10-2010 a las 12:51 +0200, Jos� Mejuto escribi�:

Show quoted text 12 lines
Hello Jos�, Monday, October 18, 2010, 8:30:35 AM, you wrote: JAC> Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo JAC> luego en lazarus con un formatdatetime? JAC> Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE Y en qu� formato dar�a el resultado ? :)Necesitar�a un formato nuevo tipo "TIMEPERIOD" que fuera "days hh:mm:ss" o un time con posibilidad de m�s de 24 horas.

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/fdd5956f/attachment.html>

Reply by email

José Antonio Cuello
to Paola Bruccoleri: El 18/10/2010 03:30 a.m., Jos� Antonio Cuello escribi�: Hola Jos�.. esto no…

El lun, 18-10-2010 a las 08:46 -0300, Paola Bruccoleri escribi�:

Show quoted text 25 lines
El 18/10/2010 03:30 a.m., Jos� Antonio Cuello escribi�: > Hola, no bastar�a con hacer un cast a DateTime del campo Time y > tratarlo luego en lazarus con un formatdatetime? > > Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE > Hola Jos�.. esto no funciona! el ibexpert me tira este error: This operation is not defined for system tables. Dynamic SQL Error. SQL error code = -607. Invalid command. Specified domain or source column DATETIME does not exist. De todas maneras, con que me devuelva la suma en segundos me conformo; y eso ya lo logr�. La cuesti�n ahora es con el lazreport, si ves uno de mis �ltimos mensajes ver�s que ya logr� el cometido, pero quiero ver de optimizarlo y mejorar el formato.

ok, solo era por encontrar una solucion mediante sql.

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/7897fc41/attachment.html>

Reply by email

Paola Bruccoleri
to José Antonio Cuello

El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�:

Show quoted text 27 lines
El lun, 18-10-2010 a las 08:46 -0300, Paola Bruccoleri escribi�: > El 18/10/2010 03:30 a.m., Jos� Antonio Cuello escribi�: >> Hola, no bastar�a con hacer un cast a DateTime del campo Time y >> tratarlo luego en lazarus con un formatdatetime? >> >> Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE >> > Hola Jos�.. > esto no funciona! > el ibexpert me tira este error: > > This operation is not defined for system tables. > Dynamic SQL Error. > SQL error code = -607. > Invalid command. > Specified domain or source column DATETIME does not exist. > > De todas maneras, con que me devuelva la suma en segundos me > conformo; y eso ya lo logr�. > > La cuesti�n ahora es con el lazreport, si ves uno de mis �ltimos > mensajes ver�s que ya logr� el cometido, pero quiero ver de > optimizarlo y mejorar el formato. > ok, solo era por encontrar una solucion mediante sql.

si, estar�a bueno, pero con todo lo que anduve buscando ayer y probando, creo que es imposible!!..

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/5ff9db03/attachment.html>

Reply by email

José Antonio Cuello
to Paola Bruccoleri

He estado mirando la documentaci�n de firebird y el campo para intervalos es el TIMESTAMP. Este tipo de campo permite m�s de 24 horas, has probado hacer el cast del campo time a TIMESTAMP para hacer el Sum?. Lo he probado en postgresql ya que no tengo instalado el firebird y al hacer un sum de un campo time me devuelve un campo interval, el cual de por si ya permite m�s de 24 horas y del cual se puede hacer extract para sacar las horas, minutos y segundos.

Tambien he revisado como lo hago cuando controlo los marcajes de los empleados y lo controlo por un procedimento almacenado, pero el postgres no me limita al hacer el sum de las horas trabajadas.

Un saludo.

________________________________________________________________________

ARTEX TRADING S.A.
Jos� Antonio Cuello Principal

El lun, 18-10-2010 a las 08:59 -0300, Paola Bruccoleri escribi�:

Show quoted text 43 lines
El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: > > > El lun, 18-10-2010 a las 08:46 -0300, Paola Bruccoleri escribi�: > > > El 18/10/2010 03:30 a.m., Jos� Antonio Cuello escribi�: > > > > > Hola, no bastar�a con hacer un cast a DateTime del campo Time y > > > tratarlo luego en lazarus con un formatdatetime? > > > > > > Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE > > > > > > > Hola Jos�.. > > esto no funciona! > > el ibexpert me tira este error: > > > > This operation is not defined for system tables. > > Dynamic SQL Error. > > SQL error code = -607. > > Invalid command. > > Specified domain or source column DATETIME does not exist. > > > > De todas maneras, con que me devuelva la suma en segundos me > > conformo; y eso ya lo logr�. > > > > La cuesti�n ahora es con el lazreport, si ves uno de mis �ltimos > > mensajes ver�s que ya logr� el cometido, pero quiero ver de > > optimizarlo y mejorar el formato. > > > > ok, solo era por encontrar una solucion mediante sql. si, estar�a bueno, pero con todo lo que anduve buscando ayer y probando, creo que es imposible!!.. _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/2e15e0eb/attachment.html>

Reply by email

Paola Bruccoleri
to José Antonio Cuello

El 18/10/2010 09:25 a.m., Jos� Antonio Cuello escribi�:

Hola Jos�..

Show quoted text 8 lines
He estado mirando la documentaci�n de firebird y el campo para intervalos es el TIMESTAMP. Este tipo de campo permite m�s de 24 horas, has probado hacer el cast del campo time a TIMESTAMP para hacer el Sum?. Lo he probado en postgresql ya que no tengo instalado el firebird y al hacer un sum de un campo time me devuelve un campo interval, el cual de por si ya permite m�s de 24 horas y del cual se puede hacer extract para sacar las horas, minutos y segundos.

esto:
Select Sum( CAST(hs_operario as timestamp) ) as suma from form_03

me da este error:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported.

Tambien he revisado como lo hago cuando controlo los marcajes de los empleados y lo controlo por un procedimento almacenado, pero el postgres no me limita al hacer el sum de las horas trabajadas.

yo no puedo creer que con firebird sea tan complicada la cosa!!.... creo que con mysql tampoco es complicado por lo que vi navegando por ah�.. chauuuuuuuu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/e2b932af/attachment.html>

Reply by email

José Mejuto
to José Antonio Cuello: Pues recuerdo haberlo hecho ... al hacer el cast el campo resultante del SUM es un Date o…

Hello Jos�,

Monday, October 18, 2010, 1:51:37 PM, you wrote:

JAC> Pues recuerdo haberlo hecho ... al hacer el cast el campo resultante del JAC> SUM es un Date o Datetime (esta es la parte que no recuerdo) y el JAC> "datetime" permite m�s de 24 horas.

En realidad no, ya que cuando algo pasa de 24 horas lo suma en la fecha, pero la fecha no son dias, son una fecha, esto es, dia/mes/a�o; con el consecuente problema de los meses que no son de longitud fija, los a�os bisiestos, etc...

Best regards, Jos�

Reply by email

Ismael L. Donis García
to Paola Bruccoleri: El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: si, estar�a bueno, pero con…

Ante todo me perdona por la tardanza de la respuesta pero no fue hasta ahora que vengo al trabajo.

select cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer) || ':' || cast((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) as integer) || ':'
|| (((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) -cast((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) as integer))*60) as hora from form_03 a

Y respondiendo al compa�ero que dijo que no quer�a saber de Firebird, pues yo por el contrario no quiero saber de otro motor que no sea Firebird, estoy con �l hace 6 a�os con un gran n�mero de aplicaciones con gran carga de trabajo y hasta ahora ning�n cliente me ha llamado nunca a decirme que ha tenido alg�n tipo de problema

Saludos cordiales a todos.
=========
|| ISMAEL ||
=========
PD: Paula como bien te dijeron te puedes craear una funci�n o un procedimiento almacenado para ello, que realmente es como debe ser ya que la capa de datos debe estan dentro de la BD.

Earlier message 45 lines
----- Original Message ----- From: Paola Bruccoleri To: Spanish version of Lazarus List Sent: Monday, October 18, 2010 7:59 AM Subject: Re: [Lazarus-es] trabajando con horas El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: El lun, 18-10-2010 a las 08:46 -0300, Paola Bruccoleri escribi�: El 18/10/2010 03:30 a.m., Jos� Antonio Cuello escribi�: Hola, no bastar�a con hacer un cast a DateTime del campo Time y tratarlo luego en lazarus con un formatdatetime? Select Sum( CAST(TIME_FIELD as DateTime) ) from TABLE Hola Jos�.. esto no funciona! el ibexpert me tira este error: This operation is not defined for system tables. Dynamic SQL Error. SQL error code = -607. Invalid command. Specified domain or source column DATETIME does not exist. De todas maneras, con que me devuelva la suma en segundos me conformo; y eso ya lo logr�. La cuesti�n ahora es con el lazreport, si ves uno de mis �ltimos mensajes ver�s que ya logr� el cometido, pero quiero ver de optimizarlo y mejorar el formato. ok, solo era por encontrar una solucion mediante sql. si, estar�a bueno, pero con todo lo que anduve buscando ayer y probando, creo que es imposible!!.. ------------------------------------------------------------------------------

Reply by email

Paola Bruccoleri
to Ismael L. Donis García

El 18/10/2010 10:58 a.m., Ismael L. Donis Garc�a escribi�:

Show quoted text 27 lines
Ante todo me perdona por la tardanza de la respuesta pero no fue hasta ahora que vengo al trabajo. select cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer) || ':' || cast((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) as integer) || ':' || (((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) -cast((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) as integer))*60) as hora from form_03 a Y respondiendo al compa�ero que dijo que no quer�a saber de Firebird, pues yo por el contrario no quiero saber de otro motor que no sea Firebird, estoy con �l hace 6 a�os con un gran n�mero de aplicaciones con gran carga de trabajo y hasta ahora ning�n cliente me ha llamado nunca a decirme que ha tenido alg�n tipo de problema Saludos cordiales a todos. ========= || ISMAEL || ========= PD: Paula como bien te dijeron te puedes craear una funci�n o un procedimiento almacenado para ello, que realmente es como debe ser ya que la capa de datos debe estan dentro de la BD.

Hola Ismael..
esto funciona ok!

pero me podr�as ayudar en crear el procedimiento almacenado? porque como ya coment�, tengo varios campos de este tipo, donde debo obtener una suma... y esto es un chorrete que se debe optimizar.

otra cosa... el reporte ser� algo as�:

m�quina 1 - 116:05
maquina 2 - 84:30
....

�c�mo obtengo la suma en el reporte? porque todo eso es un string.. quiz�s la soluci�n m�s conveniente es hacer al rev�s.. obtener segundos y armar el resultado en el lazreport..

chauuuuuuu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/cc0c30a5/attachment-0001.html>

Reply by email

José Mejuto
to Ismael L. Donis García: Ante todo me perdona por la tardanza de la respuesta pero no fue hasta ahora que vengo al…

Hello Ismael,

Monday, October 18, 2010, 3:58:55 PM, you wrote:

ILDG> select cast((sum(a.hs_trabajo - cast('0:0' as ILDG> time))/3600) as integer) || ':'

Cuidado con las divisiones que al hacerlas INTEGER con el cast se redondean!!

Select cast(5401/3600 as INTEGER)

Por eso yo pon�a -0.499999999 as� el redondeo en realidad fuerza el quedarse con la parte entera.

Best regards, Jos�

Reply by email

Ismael L. Donis García
to Paola Bruccoleri: El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: si, estar�a bueno, pero con…

Paula hacerlo dentro de un procedimiento tienes que hacer el chorrete como dices, o caso contrario tienes que hacer un while e ir llenando los datos con la suma ya que un procedimiento almacenado no se puede llamar desde un select.

Por tal motivo es mejor hacer una funci�n dentro de una udf, para eso debes usar delphi o C, lo cual no tengo instalado, pero si no sabes hacerlo dime que lo instalo y lo hago.

por ejemplo el procedimiento almacenado ser�a as�:

SET TERM ^ ;
CREATE PROCEDURE P_TIME (
DEC_SEGUNDOS Decimal(15,4) )
RETURNS (
VCH_HORAS Varchar(15) )
AS
BEGIN
/* Procedimiento para calcular las horas a partir de los segundos */

vch_horas = cast((dec_segundos/3600) as integer) || ':' || cast((((dec_segundos/3600) - cast((dec_segundos/3600) as integer))*60) as integer) || ':'

            || (((((dec_segundos/3600) - cast((dec_segundos/3600) as integer))*60)-cast((((dec_segundos/3600) - cast((dec_segundos/3600) as integer))*60) as integer))*60);
  suspend;

END^
SET TERM ; ^

GRANT EXECUTE
 ON PROCEDURE P_TIME TO  SYSDBA;

Si miras es f�cil armarte una funci�n en C con los datos que te paso.

Saludos cordiales.
=========
|| ISMAEL ||
=========

Earlier message 48 lines
----- Original Message ----- From: Paola Bruccoleri To: Spanish version of Lazarus List Sent: Monday, October 18, 2010 10:47 AM Subject: Re: [Lazarus-es] trabajando con horas El 18/10/2010 10:58 a.m., Ismael L. Donis Garc�a escribi�: Ante todo me perdona por la tardanza de la respuesta pero no fue hasta ahora que vengo al trabajo. select cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer) || ':' || cast((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) as integer) || ':' || (((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) -cast((((sum(a.hs_trabajo - cast('0:0' as time))/3600) - cast((sum(a.hs_trabajo - cast('0:0' as time))/3600) as integer))*60) as integer))*60) as hora from form_03 a Y respondiendo al compa�ero que dijo que no quer�a saber de Firebird, pues yo por el contrario no quiero saber de otro motor que no sea Firebird, estoy con �l hace 6 a�os con un gran n�mero de aplicaciones con gran carga de trabajo y hasta ahora ning�n cliente me ha llamado nunca a decirme que ha tenido alg�n tipo de problema Saludos cordiales a todos. ========= || ISMAEL || ========= PD: Paula como bien te dijeron te puedes craear una funci�n o un procedimiento almacenado para ello, que realmente es como debe ser ya que la capa de datos debe estan dentro de la BD. Hola Ismael.. esto funciona ok! pero me podr�as ayudar en crear el procedimiento almacenado? porque como ya coment�, tengo varios campos de este tipo, donde debo obtener una suma... y esto es un chorrete que se debe optimizar. otra cosa... el reporte ser� algo as�: m�quina 1 - 116:05 maquina 2 - 84:30 .... �c�mo obtengo la suma en el reporte? porque todo eso es un string.. quiz�s la soluci�n m�s conveniente es hacer al rev�s.. obtener segundos y armar el resultado en el lazreport.. chauuuuuuu ------------------------------------------------------------------------------

Reply by email

Paola Bruccoleri
to Ismael L. Donis García

El 18/10/2010 01:14 p.m., Ismael L. Donis Garc�a escribi�:

Show quoted text 9 lines
Paula hacerlo dentro de un procedimiento tienes que hacer el chorrete como dices, o caso contrario tienes que hacer un while e ir llenando los datos con la suma ya que un procedimiento almacenado no se puede llamar desde un select. Por tal motivo es mejor hacer una funci�n dentro de una udf, para eso debes usar delphi o C, lo cual no tengo instalado, pero si no sabes hacerlo dime que lo instalo y lo hago. por ejemplo el procedimiento almacenado ser�a as�:

Hola Ismael..
ayer estuve mirando una librer�a de funciones para firebird: freeadhocudf http://freeadhocudf.org/documentation_english/dok_eng_datum.html#umwandeln

que tiene esta funci�n:
F_SECONDS2PERIOD function from adhoc
Entrypoint seconds2period compatible with UTF-8
Input INTEGER seconds of a period
Output CSTRING(254) period in pattern d:h:m:s
The output is allways in pattern days:hours:minutes:seconds (4 * 2 digit intervalls).
Negativ periods starts with "-".
TestSQL
SELECT '00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(4205) FROM RDB$DATABASE; SELECT '-00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(-4205) FROM RDB$DATABASE;
SELECT NULL AS ISCORRECT, F_SECONDS2PERIOD(NULL) FROM RDB$DATABASE;

la cosa que no lo pude hacer funcionar!!..
coloqu� la dll en la carpeta UDF de firebird, reinici� el server, pero cuando voy a probarla desde el ibexpert me dice que la funci�n no existe. Quiz�s me est� faltando hacer algo..
chauuuuuuuu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101018/b1aac486/attachment.html>

Reply by email

Ismael L. Donis García
to Paola Bruccoleri: El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: si, estar�a bueno, pero con…

Si, lo se, pero al restar usando el cast eso se va, al menos yo no he tenido problemas, habr�a que hacer un an�lisis minucioso a ver si lo estoy haciendo mal, pero realmente cuando he verificado a mano no ha tenido problemas.

Saludos cordiales y muchas gracias por el apunte.
=========
|| ISMAEL ||
=========

Earlier message 28 lines
----- Original Message ----- From: "Jos� Mejuto" <joshyfun en gmail.com> To: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Sent: Monday, October 18, 2010 12:03 PM Subject: Re: [Lazarus-es] trabajando con horas Hello Ismael, Monday, October 18, 2010, 3:58:55 PM, you wrote: ILDG> select cast((sum(a.hs_trabajo - cast('0:0' as ILDG> time))/3600) as integer) || ':' Cuidado con las divisiones que al hacerlas INTEGER con el cast se redondean!! Select cast(5401/3600 as INTEGER) Por eso yo pon�a -0.499999999 as� el redondeo en realidad fuerza el quedarse con la parte entera. -- Best regards, Jos�

Reply by email

Ismael L. Donis García
to Paola Bruccoleri: El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: si, estar�a bueno, pero con…

La declaraste dentro de la base de datos?

DECLARE EXTERNAL FUNCTION F_SECONDS2PERIOD
INTEGER
RETURNS CSTRING(254) FREE_IT
ENTRY_POINT 'seconds2period' MODULE_NAME 'freeadhocudf';

Saludos cordiales
=========
|| ISMAEL ||
=========

Earlier message 41 lines
----- Original Message ----- From: Paola Bruccoleri To: Spanish version of Lazarus List Sent: Monday, October 18, 2010 12:21 PM Subject: Re: [Lazarus-es] trabajando con horas El 18/10/2010 01:14 p.m., Ismael L. Donis Garc�a escribi�: Paula hacerlo dentro de un procedimiento tienes que hacer el chorrete como dices, o caso contrario tienes que hacer un while e ir llenando los datos con la suma ya que un procedimiento almacenado no se puede llamar desde un select. Por tal motivo es mejor hacer una funci�n dentro de una udf, para eso debes usar delphi o C, lo cual no tengo instalado, pero si no sabes hacerlo dime que lo instalo y lo hago. por ejemplo el procedimiento almacenado ser�a as�: Hola Ismael.. ayer estuve mirando una librer�a de funciones para firebird: freeadhocudf http://freeadhocudf.org/documentation_english/dok_eng_datum.html#umwandeln que tiene esta funci�n: F_SECONDS2PERIOD function from adhoc Entrypoint seconds2period compatible with UTF-8 Input INTEGER seconds of a period Output CSTRING(254) period in pattern d:h:m:s The output is allways in pattern days:hours:minutes:seconds (4 * 2 digit intervalls). Negativ periods starts with "-". TestSQL SELECT '00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(4205) FROM RDB$DATABASE; SELECT '-00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(-4205) FROM RDB$DATABASE; SELECT NULL AS ISCORRECT, F_SECONDS2PERIOD(NULL) FROM RDB$DATABASE; la cosa que no lo pude hacer funcionar!!.. coloqu� la dll en la carpeta UDF de firebird, reinici� el server, pero cuando voy a probarla desde el ibexpert me dice que la funci�n no existe. Quiz�s me est� faltando hacer algo.. chauuuuuuuu ------------------------------------------------------------------------------

Reply by email

Ismael L. Donis García
to Paola Bruccoleri: El 18/10/2010 08:57 a.m., Jos� Antonio Cuello escribi�: si, estar�a bueno, pero con…

Se me olvid� decirte que si tienes los fuentes de esa UDF le puedes agregar la funci�n que desees o caso contrario te puedes crear una UDF para ti con las funciones que desees, tambi�n las puedes solicitar que sean agregadas al proyecto de Firebird y si se unen m�s personas a tu pedido se incorpora para las nuevas versiones. Y ah� unas de las ventajas de este proyecto al ser libre.

Tambi�n te puedes bajar el c�digo fuente de estas librer�as y agregarle la funci�n que desees. Recuerden que Firebird al igual que Lazarus es free y de c�digo abierto, �sea puedes descargar el c�digo fuente y modificarlo a tu antojo.

Saludos reiterados
=========
|| ISMAEL ||
=========

Earlier message 41 lines
----- Original Message ----- From: Paola Bruccoleri To: Spanish version of Lazarus List Sent: Monday, October 18, 2010 12:21 PM Subject: Re: [Lazarus-es] trabajando con horas El 18/10/2010 01:14 p.m., Ismael L. Donis Garc�a escribi�: Paula hacerlo dentro de un procedimiento tienes que hacer el chorrete como dices, o caso contrario tienes que hacer un while e ir llenando los datos con la suma ya que un procedimiento almacenado no se puede llamar desde un select. Por tal motivo es mejor hacer una funci�n dentro de una udf, para eso debes usar delphi o C, lo cual no tengo instalado, pero si no sabes hacerlo dime que lo instalo y lo hago. por ejemplo el procedimiento almacenado ser�a as�: Hola Ismael.. ayer estuve mirando una librer�a de funciones para firebird: freeadhocudf http://freeadhocudf.org/documentation_english/dok_eng_datum.html#umwandeln que tiene esta funci�n: F_SECONDS2PERIOD function from adhoc Entrypoint seconds2period compatible with UTF-8 Input INTEGER seconds of a period Output CSTRING(254) period in pattern d:h:m:s The output is allways in pattern days:hours:minutes:seconds (4 * 2 digit intervalls). Negativ periods starts with "-". TestSQL SELECT '00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(4205) FROM RDB$DATABASE; SELECT '-00:01:10:05' AS ISCORRECT, F_SECONDS2PERIOD(-4205) FROM RDB$DATABASE; SELECT NULL AS ISCORRECT, F_SECONDS2PERIOD(NULL) FROM RDB$DATABASE; la cosa que no lo pude hacer funcionar!!.. coloqu� la dll en la carpeta UDF de firebird, reinici� el server, pero cuando voy a probarla desde el ibexpert me dice que la funci�n no existe. Quiz�s me est� faltando hacer algo.. chauuuuuuuu ------------------------------------------------------------------------------

Reply by email

José Mejuto
to Paola Bruccoleri: El 18/10/2010 01:14 p.m., Ismael L. Donis Garc�a escribi�: Hola Ismael.. ayer estuve…

Hello Paola,

Monday, October 18, 2010, 6:21:22 PM, you wrote:

PB> la cosa que no lo pude hacer funcionar!!..
PB> coloqu� la dll en la carpeta UDF de firebird, reinici� el server, pero PB> cuando voy a probarla desde el ibexpert me dice que la funci�n no PB> existe. Quiz�s me est� faltando hacer algo.. PB> chauuuuuuuu

Las UDF tienes que registrarlas en la base de datos, para cada base de datos: http://www.firebirdfaq.org/faq169/

Best regards, Jos�

Reply by email

Paola Bruccoleri
to José Mejuto

El 18/10/2010 02:26 p.m., Jos� Mejuto escribi�:

Show quoted text 12 lines
Hello Paola, Monday, October 18, 2010, 6:21:22 PM, you wrote: PB> la cosa que no lo pude hacer funcionar!!.. PB> coloqu� la dll en la carpeta UDF de firebird, reinici� el server, pero PB> cuando voy a probarla desde el ibexpert me dice que la funci�n no PB> existe. Quiz�s me est� faltando hacer algo.. PB> chauuuuuuuu Las UDF tienes que registrarlas en la base de datos, para cada base de datos: http://www.firebirdfaq.org/faq169/

ok.. ya est� registrada!!.. qu� complicado (m�s bien laaargoo de hacer) si se me ocurre tener registradas todas las que trae la dll!!

Bueno, esto:
SELECT SECONDS2PERIOD(SUM(hs_trabajo - cast('0:0' as time))) FROM form_03

me devuelve correctamente, pero en formato string la suma de las horas: dd:hh:mm:ss..

pero .. se complica la suma final desde el lazreport.

Me gustar�a que si Jes�s puede, vea c�mo optimizar esto: [STR(INT([qry."HS_TRABAJO"] / 3600))]:[STR(INT([qry."HS_TRABAJO"] mod
3600) / 60))]:[STR((([qry."HS_TRABAJO"] mod 3600) mod 60))]

en cada campo del lazreport.. o sea, si se puede poner alguna funci�n en alg�n lado.. no s�.. se me ocurre..

otra cosa.. �c�mo es la sintaxis del FORMATTEXT para que un n�mero de 1 d�gito quede de 2?... 8 -> 08

chauuuuuuuuu

Reply by email

Jesus Reyes
to Paola Bruccoleri

--- El lun 18-oct-10, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�:

Show quoted text 36 lines
De: Paola Bruccoleri <pbruccoleri en adinet.com.uy> Asunto: Re: [Lazarus-es] trabajando con horas A: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Fecha: lunes, 18 de octubre de 2010, 16:17 El 18/10/2010 02:26 p.m., Jos� Mejuto escribi�: > Hello Paola, > > Monday, October 18, 2010, 6:21:22 PM, you wrote: > > PB>� la cosa que no lo pude hacer funcionar!!.. > PB>� coloqu� la dll en la carpeta UDF de firebird, reinici� el server, pero > PB>� cuando voy a probarla desde el ibexpert me dice que la funci�n no > PB>� existe. Quiz�s me est� faltando hacer algo.. > PB>� chauuuuuuuu > > Las UDF tienes que registrarlas en la base de datos, para cada base de > datos: http://www.firebirdfaq.org/faq169/ ok.. ya est� registrada!!.. qu� complicado (m�s bien laaargoo de hacer) si se me ocurre tener registradas todas las que trae la dll!! Bueno, esto: SELECT SECONDS2PERIOD(SUM(hs_trabajo - cast('0:0' as time))) FROM form_03 me devuelve correctamente, pero en formato string la suma de las horas: dd:hh:mm:ss.. pero .. se complica la suma final desde el lazreport.

Exacto, no creo que sea el mejor m�todo en este caso, ver adelante...

Show quoted text 6 lines
Me gustar�a que si Jes�s puede, vea c�mo optimizar esto: [STR(INT([qry."HS_TRABAJO"] / 3600))]:[STR(INT([qry."HS_TRABAJO"] mod 3600) / 60))]:[STR((([qry."HS_TRABAJO"] mod 3600) mod 60))]

no creo eso sea buena idea, a ver, si [qry."HS_TRABAJO"] regresa la cantidad de segundos acumulada por operario, en mi opini�n seria mejor dejarle el trabajo de formatear el resultado a una funci�n de usuario, digamos [MiFormato([qry."HS_TRABAJO"])].

La funci�n MIFORMATO (LazReport lo pone autom�ticamente en may�sculas) se procesa en el evento OnUserFunction del componente TfrReport. En el ejemplo "Editor" se ilustra como procesar posteriormente el par�metro [qry."HS_TRABAJO"] mediante Secs := frParser.Calc(P1), como resultado obtendr�s el valor de segundos, el cual puedes procesar de la siguiente manera:
 Val :=  format('%d Dias ',[Secs div SecsPerDay]);
 Secs := Secs mod SecsPerDay;
 Val := Val + format('%d:', [Secs div 3600]);
 Secs := Secs mod 3600;
 Val := Val + format('%d:',[Secs div 60]);
 Secs := Secs mod 60;
 Val := Val + format('%d',[Secs]);

o usando las formulas que ya han comentado. De esta manera puedes reusar la funci�n MIFORMATO en cuantos campos necesites.

Tambi�n, esto te permitir� usar la funci�n de LazReport SUM combinandola asi [MiFormato(SUM(Campo))] para calcular el total y mostrarlo formateado.

Show quoted text 6 lines
en cada campo del lazreport.. o sea, si se puede poner alguna funci�n en alg�n lado.. no s�.. se me ocurre.. otra cosa.. �c�mo es la sintaxis del FORMATTEXT para que un n�mero de 1 d�gito quede de 2?... 8 -> 08

La funci�n FORMATTEXT esta ligada a la funci�n FormatMaskText la cual no se si este funcionando correctamente, se supone que en Delphi lo haga, mas tarde tratare de ver como funciona.

Si planeas usar el m�todo que te comento, no es necesario hacer nada extra ya que la funci�n de usuario regresa el valor ya formateado. Si necesitas formatear otros valores te sugiero usar la funcionalidad del bot�n "Formato" (hacer doble clic sobre el campo en el dise�ador de reportes), tiene editor de formato muy f�cil de usar.

Jesus Reyes A.

Reply by email

Paola Bruccoleri
to Jesus Reyes

El 18/10/2010 09:45 p.m., Jesus Reyes escribi�:

Show quoted text 5 lines
o creo eso sea buena idea, a ver, si [qry."HS_TRABAJO"] regresa la cantidad de segundos acumulada por operario, en mi opini�n seria mejor dejarle el trabajo de formatear el resultado a una funci�n de usuario, digamos [MiFormato([qry."HS_TRABAJO"])]. La funci�n MIFORMATO (LazReport lo pone autom�ticamente en may�sculas) se procesa en el evento OnUserFunction del componente TfrReport. En el ejemplo "Editor" se ilustra como procesar posteriormente el par�metro [qry."HS_TRABAJO"] mediante Secs := frParser.Calc(P1), como resultado obtendr�s el valor de segundos, el cual puedes procesar de la siguiente manera:

excelente!!! era lo que me parec�a que era lo correcto, por eso estaba esperando tu respuesta... y justamente sospechaba que se hac�a en ese evento.

La funci�n FORMATTEXT esta ligada a la funci�n FormatMaskText la cual no se si este funcionando correctamente, se supone que en Delphi lo haga, mas tarde tratare de ver como funciona.

si, anoche muy tarde estuve mirando los fuentes del lazreport (que ventaja tener los fuentes!!) donde justamente encontr� eso que dices.. y encontr� muchos reportes de bugs de esa funci�n..

Si planeas usar el m�todo que te comento, no es necesario hacer nada extra ya que la funci�n de usuario regresa el valor ya formateado. Si necesitas formatear otros valores te sugiero usar la funcionalidad del bot�n "Formato" (hacer doble clic sobre el campo en el dise�ador de reportes), tiene editor de formato muy f�cil de usar.

en eso me pongo ahora!!!..
mil gracias, como siempre!!
chauuuuuuuuuuuuu

Reply by email

Maxi
to Paola Bruccoleri

�No es mas facil guardar las horas trabajadas en un campo integer como minutos/segundos, etc?, esto te va a permitir guardar mas de 24hs y te va a permitir hcaer sumas rapidas incluso comparaciones entre vehiculos para sacar estadisticas.

Tadas las tapitas tienen premio!!! Donalas al Hosp. Infantil de C�rdoba Twitter: @nenunocomar Identi.ca: @nenuno Maximiliano Duarte Linux User #495070 Ubuntu User #28504 http://miexperiencialinux.blogspot.com/ El que pregunta aprende, y el que contesta aprende a responder.

Reply by email

Paola Bruccoleri
to Maxi

El 19/10/2010 10:38 a.m., Maxi escribi�:

�No es mas facil guardar las horas trabajadas en un campo integer como minutos/segundos, etc?, esto te va a permitir guardar mas de 24hs y te va a permitir hcaer sumas rapidas incluso comparaciones entre vehiculos para sacar estadisticas.

Hola Maxi..
si, esa era otra posibilidad.. pero desde un principio us� estos campos time y sinceramente, no cre� encontrarme con todo esto. Ahora ya est�, si soluciono con el aporte de Jes�s, ya queda as�! muchas gracias igual
chauuuuuuuuu

Reply by email

Maxi
to Paola Bruccoleri
Show quoted text 6 lines
Hola Maxi.. si, esa era otra posibilidad.. pero desde un principio us� estos campos time y sinceramente, no cre� encontrarme con todo esto. Ahora ya est�, si soluciono con el aporte de Jes�s, ya queda as�! muchas gracias igual chauuuuuuuuu

Podes agregar una columna nueva y dejar los demas datos por compatibilidad, entonces a medida que vas generando nuevos datos en un triger convertis a minutos y despues de tener todo estable dejas de usar la columna de hoas, o correr un script para actualizar todos los registros, y poner la nueva version en vigencia.
Este es un metodo escalonado de migrar a nuevas estructuras sin perder datos entre versiones de sistemas.

Tadas las tapitas tienen premio!!! Donalas al Hosp. Infantil de C�rdoba Twitter: @nenunocomar Identi.ca: @nenuno Maximiliano Duarte Linux User #495070 Ubuntu User #28504 http://miexperiencialinux.blogspot.com/ El que pregunta aprende, y el que contesta aprende a responder.

Reply by email