Utilización de fechas Oracle - SAS

8 replies [Último envío]
Joined: 01/04/2014
Puntos: 7

 Buenas tardes,

Estoy tratando de leer campos fecha que vienen de tabla Oracle con el lenguaje SAS/BASE.

Al bajar los datos a SAS los crea en la tabla SAS con formato fecha y para poder cruzarlos con datos de otra tabla SAS necesito pasar la fecha a campo numérico.

Estoy en la versión 9 de SAS.

Cualquier ayuda, seré bienvenida.

 

Imagen de Juan_Vidal
Offline
Joined: 27/05/2011
Puntos: 295

Buenas Espinosa,

Si nos aclaras en qué formato numérico quieres guardar la fecha SAS, vemos como ayudarte.

Un saludo,

Joined: 01/04/2014
Puntos: 7

 Hola,

 

Me interesa pasar de formato date SAS a formato numérico yyyymmdd

 

gracias por adelantado,

 

 

 

 

Imagen de Juan_Vidal
Offline
Joined: 27/05/2011
Puntos: 295

Te paso un ejemplo, espero te sirva:

/* Partiendo de una variable tipo fecha la convertimos en un
numérico con formato yyyymmdd */

data fechas;
fecha_num = input(put(fecha_date,yymmddn8.),8.);
run;

http://recursossassoftware.blogspot.com

Joined: 01/04/2014
Puntos: 7

 Funciona!!, muchas gracias 

Joined: 01/04/2014
Puntos: 7

 Buenos días,

 

Vuelvo a pedir ayuda. 

 

Tengo mi fecha en SAS en formato yyyymmdd, después de haber trabajado con la tabla SAS , tengo que cargar tabla Oracle en la que el campo fecha es de tipo date. Necesito transformar númerico en tipo date, pero ahora en Oracle.

 

Gracias por la ayuda!!

 

 

 

 

 

 

 

Imagen de Juan_Vidal
Offline
Joined: 27/05/2011
Puntos: 295

A ver si te sirve esto:

Transformar numérico con contenido yyyymmdd a tipo date

Si la transformación la haces en el motor de Oracle:

fecha_date = to_date(fecha_num, 'yyyymmdd')

Si la haces en SAS:

fecha_date = mdy((mod((int(fecha_num/100)),100)),(mod(fecha_num,100)), int(fecha_num/10000)))

Joined: 01/04/2014
Puntos: 7

 Hola de nuevo,

 

Me esta dando problemas la función to_date de Oracle, necesita que la fecha vaya entre comillas y no

consigo insetarlas desde el proc sql de SAS:

fecha_date = to_date('20140401', 'yyyymmdd')

La cuestión es que lo ejecuto desde un proc sql de SAS y no doy con la sintaxis para insertar las comillas antes de la variable.


 

 

 

 

 

 

 

Imagen de Juan_Vidal
Offline
Joined: 27/05/2011
Puntos: 295

Prueba lo siguiente desde el proc sql de SAS:

Si es un campo de la tabla SAS:

to_date(%str(%')fecha_num%str(%'), 'yyyymmdd')

si es una macrovariable

to_date(%str(%')&fecha_num%str(%'), 'yyyymmdd')

Espero sirva de ayuda

 



 

  BI   |    CRM     |    CMS    |    Tendencias en software empresarial    |    Cloud computing  |    Software libre    |   Internet    |    Movilidad y apps