Pergunta

Eu estou tentando importar estatísticas do NetBackup para Oracle. Um campo que eu realmente quero é activa iniciam, mas não está disponível a partir bpdbjobs -report. O que está disponível é ACTIVEELAPSED, então eu quero que subtrair o tempo do fim na importação da seguinte forma:

TEMPO END Formato: 26/09/2009 22:46:20

ELAPSED formato da hora: 028: 32: 35 (que é horas, minutos, segundos)

Arquivo SQL * Loader Control (linhas relevantes):

ACTIVE_ELAPSED      BOUNDFILLER POSITION(261:270),
END_TIME            POSITION(271:293) char "to_date(:End_time, 'dd/mm/yyyy hh:mi:ss AM')",
ACTIVE_START        EXPRESSION "to_date(:END_TIME, 'dd/mm/yyyy hh:mi:ss AM') - TO_DSINTERVAL(':ACTIVE_ELAPSED')",

Os meus me informa googling que não há máscaras de formato para o intervalo, então eu atualmente estou perplexo (Oracle SQL não é o meu show normal!)

Jonathan

Foi útil?

Solução

você poderia dividir o tempo decorrido e convertê-lo em (fração) dias, então você pode subtrair-lo de END_TIME:

to_date(:END_TIME, 'dd/mm/yyyy hh:mi:ss AM')
- substr(:elapsed_time, 1, instr(:elapsed_time, ':') - 1) / 24
- substr(:elapsed_time, 
         instr(:elapsed_time, ':') + 1,
         instr(:elapsed_time, ':', 1, 2) - instr(:elapsed_time, ':') -1) / 24 / 60 
- substr(:elapsed_time, instr(:elapsed_time, ':', 1, 2) + 1) / 24 / 60 / 60
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top