FoxPro/Visual FoxPro - Fechas

 
Vista:

Fechas

Publicado por JOSE AGUIRRE (17 intervenciones) el 14/07/2010 15:23:35
1.Tengo una tabla con la fecha definida 01/12/2010, pero necesito trasladar ese formato de fecha a otra columna con el formato siguiente: 20101201. ¿PUEDE ALGUIEN AYUDARME, POR FAVOR?

2.-tengo una columna de valores numericos bajo el siguiente formato 123.55, pero necesito pasarlos al formato siguiente: 000000012355

DE ANTE MANO, MUCHAS GRACIAS POR LA AYUDA.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Fechas

Publicado por Javier (12 intervenciones) el 14/07/2010 17:10:37
Hola:
1. Usa el comando replace:
REPLACE Columna2 WITH Dtos( Columna1)

Donde Columna1 es la campo donde tenes la fecha en formato dd/mm/yyyy y Columna2 es el campo de tipo caracter en donde quieres la fecha en otro formato (dtos hace la conversión).

2. Cuando dices que quieres pasar los números a otro formato, sería también en otro campo o es solo para visualización?

Si es para pasar a otro campo, sería algo así:

REPLACE Campo2 With Replicate( "0" , 12 - Len( Alltrim( Str( Campo1* 100, 12, 0 ) ) ) + ;
Alltrim( Str( Campo1* 100, 12, 0 ) )

Campo1 * 100 para "sacarle" los decimarles.

Si es para visualización fijate que hay un caracter de formato que permite rellenar con 0 a izquierda....(no lo recuerdo en este momento).

Saludos.

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas FALTO UN PARENTESIS

Publicado por Javier (1 intervención) el 14/07/2010 17:27:33
Perdón me faltó un paréntesis para cerrar la función replicate
Así quedaría:

REPLACE Campo2 With Replicate( "0" , 12 - ;
Len( Alltrim( Str( Campo1* 100, 12, 0 ) ) ) )+ ;
Alltrim( Str( Campo1* 100, 12, 0 ) )

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FALTO ALL LUEGO DE REPLACE!!

Publicado por Javier (12 intervenciones) el 14/07/2010 23:43:32
Los comandos deben llevar el ambito ALL
REPLACE ALL etc....
Saludos-.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas FALTO UN PARENTESIS

Publicado por JOSE AGUIRRE (17 intervenciones) el 15/07/2010 16:11:24
Hola Javier
Quiero decirle que me funciono el codigo para las fechas.

En el caso de reemplazar los valores de un campo a otro, me ha dado un error:

REPLACE valor2 With Replicate( "0" , 12 - Len( Alltrim( Str( iva_credit* 100, 12, 0 ) ) ) )+ ;
Alltrim( Str( iva_credit* 100, 12, 0 ) )

Esta línea de codigos me sustituye en el campo "valor2", el valor entero, sin decimales, me hace una aporximación.
Si el valor es 2.15 me reemplaza por el valor de 2
Si el valor es 3.75 me reemplaza por el valor de 4

LO QUE NECESITO HACER ES
Si el valor es 2.15 me lo reemplace por el valor de 00000000216
Si el valor es 3.75 me lo reemplace por el valor de 00000000375

Estoy muy agradecido por su ayuda. De antemano muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas FALTO UN PARENTESIS

Publicado por xx (378 intervenciones) el 15/07/2010 18:19:24
1) para el caso de las fechas podrias usar DTOS() solo que este te devuelve una cadena y no una fecha.
2) para convertir un numero flotante o decimal a podrias usar uno de estos codigos:
x=123.45

y=STRTRAN( STRTRAN( STR(x,11,2), " "."0 ), ".", "" )
o si quieres optimizar
y=str(123.45,11,2)
s=""
FOR _gir=1 TO 11
z=SUBSTR(_gir,y,1)
if z!="."
s=s+IIF( z==" ", "0", z )
endif
ENDFOR
*el valor que debes usar es s
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PARA JOSE AGUIRRE

Publicado por Javier (12 intervenciones) el 16/07/2010 16:54:40
Jose, proba de ponerle 2 decimales en lugar de 0 al str y aumentá de 12 a 14 el ancho.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar