Oracle - Poner fecha de numero a caracter

   
Vista:

Poner fecha de numero a caracter

Publicado por Sebastián M. Barrionuevo (2 intervenciones) el 02/01/2008 19:16:50
Amigo quiero poner una fecha(ej: 02/01/08) y que me lo ponga en letras pero en español. Probe con este codigo pero solo me devuelve el codigo en ingles

select to_char(to_date(873,'J'), 'JSP') as converted_form from dual;

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:Poner fecha de numero a caracter

Publicado por Rodolfo Reyes (445 intervenciones) el 02/01/2008 20:46:32
No existe una forma directa para hacerlo con funciones de Oracle. Tendras que conseguir o crear una función que haga esto a pie.
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:Poner fecha de numero a caracter

Publicado por Mayneth (3 intervenciones) el 10/01/2008 19:16:33
Tiene q utilizar una funcion, le mando esta espero le sirva

CREATE OR REPLACE FUNCTION Fecha_a_Texto ( Fecha_cad Date )
RETURN VarChar2
IS
imp_let VarChar2(150);
Fecha VarChar2(8);

BEGIN
-- Se pasa a cadena
Fecha := To_Char(Fecha_cad,'DDMMYYYY');

SELECT
--Decenas.
DECODE (SUBSTR(LPAD(Fecha,2,'0'),1,1),
1,DECODE (SUBSTR(LPAD(Fecha,2,'0'),2),
0,'DIEZ ',
1,'ONCE ',
2,'DOCE ',
3,'TRECE ',
4,'CATORCE ',
5,'QUINCE ',
6,'DIECISEIS ',
7,'DIECISIETE ',
8,'DIECIOCHO ',
9,'DIECINUEVE '),
2,DECODE (SUBSTR(LPAD(Fecha,2,'0'),2), 0,'VEINTE ','VEINTI'),
3,DECODE (SUBSTR(LPAD(Fecha,2,'0'),2), 0,'TREINTA ','TREINTA Y '),
0,'')
||
--Unidades.
DECODE (SUBSTR(LPAD(Fecha,2,'0'),2,1),
1,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','UNO '),
2,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','DOS '),
3,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','TRES '),
4,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','CUATRO '),
5,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','CINCO '),
6,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','SEIS '),
7,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','SIETE '),
8,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','OCHO '),
9,DECODE(SUBSTR(LPAD(Fecha,1,'0'),1,1),1,'','NUEVE '))
||
DECODE(LPAD(Fecha,1,'0'),'00','','DE ')||
--MESES
DECODE (SUBSTR(LPAD(Fecha,3,'0'),3),0,
DECODE (SUBSTR(LPAD(Fecha,4,'0'),4),
1,'ENERO ',
2,'FEBRERO ',
3,'MARZO ',
4,'ABRIL ',
5,'MAYO ',
6,'JUNIO ',
7,'JULIO ',
8,'AGOSTO ',
9,'SEPTIEMBRE '),
DECODE (SUBSTR(LPAD(Fecha,3,'0'),3),1,
DECODE (SUBSTR(LPAD(Fecha,4,'0'),4),
0,'OCTUBRE ',
1,'NOVIEMBRE ',
2,'DICIEMBRE ') ))
||
DECODE(LPAD(Fecha,3,'0'),'00','','DEL ')||
--AÑOS
--Unidades de millar
DECODE (SUBSTR(LPAD(Fecha,5,'0'),5),
1,DECODE(SUBSTR(LPAD(Fecha,6,'0'),6),1,'','MIL ') ,
2,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7),1,'','DOS MIL '))
||
--Centenas.
DECODE (SUBSTR(LPAD(Fecha,6,'0'),6),
1,'CIENTO ',
2,'DOSCIENTOS ',
3,'TRESCIENTOS ',
4,'CUATROCIENTOS ',
5,'QUINIENTOS ',
6,'SEISCIENTOS ',
7,'SETECIENTOS ',
8,'OCHOCIENTOS ',
9,'NOVECIENTOS ',
0,'')
||
--Decenas.
DECODE (SUBSTR(LPAD(Fecha,7,'0'),6,1),
1,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7),
0,'DIEZ ',
1,'ONCE ',
2,'DOCE ',
3,'TRECE ',
4,'CATORCE ',
5,'QUINCE ',
6,'DICISEIS ',
7,'DIECISIETE ',
8,'DIECIOCHO ',
9,'DIECINUEVE '),
2,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'VEINTE ','VEINTI'),
3,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'TREINTA ','TREINTA Y '),
4,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'CUARENTA ','CUARENTA Y '),
5,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'CINCUENTA ','CINCUENTA Y '),
6,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'SESENTA ','SESENTA Y '),
7,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'SETENTA ','SETENTA Y '),
8,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'OCHENTA ','OCHENTA Y '),
9,DECODE (SUBSTR(LPAD(Fecha,7,'0'),7), 0,'NOVENTA ','NOVENTA Y '),
0,'')
||
--Unidades.
DECODE (SUBSTR(LPAD(Fecha,8,'0'),8,1),
1,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','UNO '),
2,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','DOS '),
3,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','TRES '),
4,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','CUATRO '),
5,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','CINCO '),
6,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','SEIS '),
7,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','SIETE '),
8,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','OCHO '),
9,DECODE(SUBSTR(LPAD(Fecha,7,'0'),7,1),1,'','NUEVE ') )
INTO imp_let
FROM DUAL;

RETURN (imp_let);

END Fecha_a_Texto;
/
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