[Lazarus-es] trabajando con horas

José Mejuto joshyfun en gmail.com
Lun Oct 18 00:34:56 CEST 2010


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.

-- 
Best regards,
 José





More information about the Lazarus-es mailing list