Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estoy construyendo una tabla de hechos, los datos los obtengo de archivos xlsm
Tengo configurada así la fecha:
SET DateFormat='DD/MM/YYYY';
La primera carga contiene datos quincenales y utilicé esto para llegar a la fecha:
LET vAÑO = Num( KeepChar( SubField('$(vFILE)', '_', 4), '0123456789' ) );
LET vQUINCENA = Num(Mid(SubField('$(vFILE)', '_', 8),2,2) );
LET vMES = Ceil($(vQUINCENA)/2);
If(Mod($(vQUINCENA),2)=1, 15, Day(MonthEnd(MakeDate($(vAÑO),$(vMES),1))) )) AS FECHA
La segunda carga contiene datos semanales y utilicé esto para llegar a la fecha:
LET vAÑO = Num( KeepChar( SubField('$(vFILE)', '_', 4), '0123456789' ) );
LET vSEMANA = Num(Right(Left(Subfield('$(vFILE)', '_', 8),5),2) );
Date(WeekStart(MakeDate($(vAÑO),1,4) ) + ( $(vSEMANA) - 1 ) * 7 + ( DIA - 1 )) AS FECHA
Al visualizar los datos, me aparece con formato numérico "45607"
Necesito ayuda para tener el formato correcto
Buenas, curioso comportamiento al combinar distintos tipos de formato para un mismo campo, he comprobado que si la primera carga aplica directamente el valor numérico sí mantiene el entero para la primera carga y el formato de fecha para la segunda.
Teniendo en cuenta que la primera carga es un valor que depende solo de las variables anteriores, podrías calcular también la fecha como una variable:
LET vFECHA = If(Mod($(vQUINCENA),2)=1, 15, Day(MonthEnd(MakeDate($(vAÑO),$(vMES),1))));Y luego en el load directamente aplicar la variable:
$(vFECHA) AS FECHA