PDA

Ver la Versión Completa : Reemplazar "," por ":" en un punto flotante


DTAR
09-05-2006, 20:43:52
hola gente desde ya gracias por leer este hilo.. :)
resulta que tengo una tabla donde muestra la cantidad de horas extras que realiza una persona y lo tengo almacenado en un campo de tipo float, o extended o real... como mas prefieran.. o sea de punto flotante...
cuando hago la consulta
select * horas_extras
me sale algo asi...

id_empleado cant_horas_extra
1 2,5
2 3,4
4 0,3
. ..
. ..

y dale que va..

estan guardados asi porque en delphi lo programé asi y la parte entera son las horas y la parte decimal son los minutos...
lo que yo quiero hacer es que cuando haga mi consulta me salga de la siguiente forma

Select * from horas_extras
id_empleado cant_horas_extra
1 2:5
2 3:4
4 0:3
. ..
. ..

o sea reemplazar las "," por los ":"
pero quiero hacerlo por consulta en sql.

desde ya gracias..

waltergomez
09-05-2006, 22:23:37
Hay varias formas de convertir a cadena y concatenar.
No se que BD usas esto en MySQL 5.0 funciona.
Si usas otra BD fijate que funciones tiene.


select concat(concat(truncate(1.3,0),':'),right(FORMAT(1.3,2),2)) from horas_extras;


otra forma mas complicada.


select concat(concat(substr(cast(cant_horas_extra as char),1,locate('.',cast( cant_horas_extra as char))-1) ,':'), substr(cast( cant_horas_extra as char),locate('.',cast( cant_horas_extra as char))+1)) from horas_extras;


Saludos,

ContraVeneno
09-05-2006, 23:55:07
no se si capte el problema, pero considera que 2,5 no son 2 horas 50 minutos, sino 2:30