[Lazarus-es] trabajando con horas
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Lun Oct 18 00:48:42 CEST 2010
El 17/10/2010 07:34 p.m., José Mejuto escribió:
> 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
More information about the Lazarus-es
mailing list