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
Hola! Sl hacer cualquier operación aritmética o usar NUM, tu fecha va a tomar formato numérico automáticamente; de hecho, la salida de MAKEDATE es por dentro un número también.
Lo que te falta es encerrar toda tu expresión en DATE() para darle a ese número el formato de fecha que quieres:
Date(Date(WeekStart(MakeDate($(vAÑO),1,4) ) + ( $(vSEMANA) - 1 ) * 7 + ( DIA - 1 )) ,'DD/MM/YYYY')
Espero que esto te sirva.
Hola! Sl hacer cualquier operación aritmética o usar NUM, tu fecha va a tomar formato numérico automáticamente; de hecho, la salida de MAKEDATE es por dentro un número también.
Lo que te falta es encerrar toda tu expresión en DATE() para darle a ese número el formato de fecha que quieres:
Date(Date(WeekStart(MakeDate($(vAÑO),1,4) ) + ( $(vSEMANA) - 1 ) * 7 + ( DIA - 1 )) ,'DD/MM/YYYY')
Espero que esto te sirva.