![]() |
formato en centenas decimales unidades
Hola que tal lo que pasa es lo siguiente:
tengo un campo char con estos datos 85.12 o tambien con 115.12 como valores y necesito que pasarlo a este 008512 o en el caso 011512 nose si tendria que hacerlo en un if o si hay una funcion para hacerlo..... |
No hay ninguna función, así que tienes que usar las funciones normales de conversión de número a cadena (cast), pero separando primero la parte entera de la parte decimal.
Sería algo así : cast(cast(NUMERO as integer) as varchar(20)) || cast(cast((NUMERO - cast(NUMERO as integer)) * 100 as integer) as varchar(2)) Saludos. |
Cita:
|
Cita:
UPDATE A_tabla SET SALARIO=cast(cast(SALARIO as integer) as VARchar(20)) || cast(cast((SALARIO - cast(SALARIO as integer)) * 100 as integer) as VARchar(2)) |
Hola.
Lo he probado y no he tenido ese error (¿ qué versión de Firebird utilizas ?). Aunque he visto otro problema, y es que un CAST AS INTEGER redondea enteros en lugar de coger solo la parte entera. Con lo que no sirve para lo que queríamos hacer. |
Hay otra solución mucho más sencilla. Simplemente multiplica el número por 100.
Saludos. |
Cita:
oooo si solo multiplicando por 100 y agregando ceros al principio, si eso queria gracias....
|
| La franja horaria es GMT +2. Ahora son las 02:04:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi