1

我正在尝试将 NetBackup 统计信息导入 Oracle。我真正想要的一个字段是 ACTIVE START,但它在 bpdbjobs -report 中不可用。可用的是 ACTIVEELAPSED,所以我想从导入时的 END TIME 中减去它,如下所示:

结束时间格式:26/09/2009 10:46:20 PM

ELAPSED TIME 格式:028:32:35(即小时、分钟、秒)

SQL*Loader 控制文件(相关行):

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')",

我的谷歌搜索告诉我间隔没有格式掩码,所以我目前很难过(Oracle SQL 不是我的正常工作!)

乔纳森

4

1 回答 1

1

您可以拆分经过的时间并将其转换为(一小部分)天,然后您可以从 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
于 2009-09-30T06:17:30.177 回答