2014-09-26 121 views
0

我正在處理的是Sq l-Report,我需要此論壇專家的幫助。將數字添加到varchar並將結果與​​另一個varchar值進行比較

該報告是爲了找到所有在這個地方的遲來的人和早期的人。 我必須在varchar2類型列的分鐘部分添加10分鐘,並且此列中的值類似於'10:41',這意味着我必須在添加10(數字)後將其設置爲'10:51'。 我已應用to_number,但它不起作用。

我的Oracle版本= 7.0

查詢我使用的是這樣的:

select adm,emp_num,adm_emp_name,asm_st_tme,asm_ed_tme from adm,asm 
where adm_emp_num =120342 
having min(to_char(adm_ace_tme,'HH24:MI')) < asm_st_tme 
group by adm,emp_num,adm_emp_name,asm_st_tme,asm_ed_tme 

上將表的結構是:

ADM_ID    NUMBER(10,0)  Yes  1  
ADM_EMP_NUM   NUMBER(6,0) Yes  2  
ADM_EMP_NAM   VARCHAR2(35 BYTE) Yes  3  
ADM_CRD_NUM   VARCHAR2(10 BYTE) Yes  4  
ADM_ACE_DTE   DATE    Yes  5  
ADM_ACE_TME   DATE    Yes  6  
ADM_DOR_NUM   NUMBER(4,0) Yes  7  
ADM_DOR_NAM  VARCHAR2(15 BYTE) Yes  8  
ADM_DOR_STE  VARCHAR2(15 BYTE) Yes  9  
ADM_IN_OUT   VARCHAR2(5 BYTE)  Yes  10  
ADM_MAC_TYP  VARCHAR2(15 BYTE) Yes  11  

ASM表的結構是:

ASM_ID  NUMBER(1,0) 
ASM_SFT  VARCHAR2(1 BYTE) 
ASM_ST_TME VARCHAR2(5 BYTE) 
ASM_ED_TME VARCHAR2(5 BYTE) 
+0

版本7?如1992年的第7版?你能展示一些你的代碼嗎? – GolezTrol 2014-09-26 06:45:59

+0

是的,1992年的版本。 – Manu 2014-09-26 09:26:05

回答

0

首先你mus t使用此cols作爲時間戳而不是varchar。使用alter命令來做到這一點。然後你可以使用下面的syantax來獲得想要的結果。

SELECT SYADATE, SYADATE + INTERVAL '10' MINUTE 
FROM DUAL; 
+0

我無法修改結構。 – Manu 2014-09-26 09:23:35

相關問題