将数字添加到varchar并将结果与​​另一个varchar值进行比较

时间:2014-09-26 06:41:38

标签: sql oracle

我正在制作Sq l-Report,我需要本论坛专家的帮助。

该报告旨在找到所有后来者和早起的人。 我必须在varchar2类型列的分钟部分添加10分钟,此列中的值类似于' 10:41',表示我必须制作它' 10:51& #39;添加10(数字)后。 我申请了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表的结构是:

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)

1 个答案:

答案 0 :(得分:0)

首先,您必须将此cols用作时间戳而不是varchar。使用alter命令执行此操作。然后你可以使用以下syantax来获得理想的结果。

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