FoxPro/Visual FoxPro - Numerico a Caracter y Date a Chr

 
Vista:

Numerico a Caracter y Date a Chr

Publicado por Marisela (11 intervenciones) el 07/09/2010 18:45:17
Hola .

Tengo dos consultas en la conversion de valores de una tabla un campo es tipo fecha y lo quiero conviertir a caracter. Por ejemplo en la tabla tiene 20100907 y quisiera pasarlo a caracter y tambien darle formato 07-SEP-2010. Este en la primer consulta.

La segunda es que tengo valores numericos con 2 decimales en unos campos de la tabla y quiero pasarlo a caracter sin que se pierdan los decimales, porque uso el STR(variable) en donde tiene valor "20.00" y al convertirlo me deja solo "20" y quiero que sea caracter pero con los decimales aunque sean .00(punto y ceros).

Espero su ayuda gracias.
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:Numerico a Caracter y Date a Chr

Publicado por xx (378 intervenciones) el 07/09/2010 21:02:28
1 Hasta donde se los formatos de fechas son siempre con numeros, es decir tendrias que crear una funcion que tome el mes numerico y te lo pase a catacter.

FUNCTION DATETOSTR( _date )
DIMENSION _mes[12]
_mes[1]="ene"
...
_mes[12]="dic"
_str=STR(DAY(_date),2,0)+"-"+_mes[MONTH(_date)]+"-"+STR(YEAR(_date),4,0)
_str=STRTRAN(_str," "."0")
RETURN _str

2 Para que te devuelva los quebrados tambien debes hacer STR(20.00,6,2) y dependiendo puedes de lo que necesitas puedes aplicarle ALLTRIM() para quitar los espacios es decir : ALLTRIM(STR(20.00,6,2))
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
sin imagen de perfil

RE:Numerico a Caracter y Date a Chr

Publicado por Juanma Cruz (512 intervenciones) el 08/09/2010 14:39:37
No tiene ningún misterio, si tu campo es de tipo fecha y lo quieres convertir en caracter

cResultado= Transform( campofecha, "@D" )

Si necesitas con el nombre del mes:

cResultado= Transform( day(campofecha), "@L 99")+ '-' + Substr( CMONTH( campofecha) ,1, 3 )+'-'+transform( year(campofecha), "@L 9999" )

En tu entorno de desarrollo te devolverá el nombre del mes en el idioma que esté el IDE, pero en el EXE final, dependerá de la librería de recursos que hayas usado, lo normal es distribuir el EXE con las librerías en castellano. (VFP9 SP2 no tiene IDE en castellano, pero sí las librerías de runtime)

El de los números es cosa de usar STR() en su sintaxis completa, mira la ayuda
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:Numerico a Caracter y Date a Chr

Publicado por Marisela (11 intervenciones) el 08/09/2010 19:43:44
Muy bien , gracias, me funcionó de maravilla, JuanMa. lo de las fechas y cheque en la ayuda del STR y ya me fije como hacerlo.

Oye otra pregunta.

Como le haria para el caso de la hora para convertir en caracter.

vartiempo=STR(datetime()) o sería con el transform?
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
sin imagen de perfil

RE:Numerico a Caracter y Date a Chr

Publicado por Juanma Cruz (512 intervenciones) el 09/09/2010 11:28:05
Usa la función TTOC (Time to Character) con el modificador 2, de modo que retorne una cadena de texto SOLO con la parte de hora del parámetro que le proporciones. Está en la ayuda también.

SET HOURS TO 24
cMiHora= TTOC( datetime(), 2 )

y te retornará algo como "11:28:03"

Que ponga o no el AM/PM al final del texto ya depende de cómo tengas configurado el

SET HOURS

Personalmente, recomiendo trabajar siempre en formato 24 horas
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:Numerico a Caracter y Date a Chr

Publicado por Marisela (11 intervenciones) el 10/09/2010 16:33:18
De lujo , 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