Oracle – Select sysdate +/- time from dual

本文介绍如何使用SQL在Oracle数据库中进行日期和时间的加减运算,包括天数、小时、分钟及秒的增减,并提供了具体的SQL语句示例。

如果想+,-系统时间:

 

Sysdate:

SQL> SELECT TO_CHAR(SYSDATE, 'dd-mm-yy hh24:mi:ss') from dual;

 

Days:

SQL> SELECT TO_CHAR(SYSDATE -1, 'dd-mm-yy hh24:mi:ss') from dual;

Hours:

SQL> SELECT TO_CHAR(SYSDATE-(1/24), 'dd-mm-yy hh24:mi:ss') from dual;

Minutes:

SQL> SELECT TO_CHAR(SYSDATE-1/(24*60), 'dd-mm-yy hh24:mi:ss') from dual;

Seconds:

SQL> SELECT TO_CHAR(SYSDATE-1/(24*60*60), 'dd-mm-yy hh24:mi:ss') from dual;

 

你也可以用+ 取代- 获得 加的结果

SQL> SELECT TO_CHAR(SYSDATE +1, 'dd-mm-yy hh24:mi:ss') from dual;

其中CLOCK11是VARCHAR2 (55 Byte),所以先转换为date格式,后需要查询出当CLOCK_IN上班卡是在17:30-17:31、20:30-20:31、01:30-01:31、5:30-5:31、8:30-8:31、13:30-13:31和下班卡是在17:30-17:31、20:30-20:31、01:30-01:31、5:30-5:31、8:30-8:31、13:30-13:31卡点刷卡的人员 并优化oracle如下SQL性能,提高执行效率和减少资源占用: WITH ALL_CLOCK AS( SELECT TO_DATE(TO_CHAR(TO_TIMESTAMP(CLOCK11, 'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') CLOCK_IN, TO_DATE(TO_CHAR(TO_TIMESTAMP(CLOCK12, 'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') CLOCK_OUT, T.* FROM HCP.V_CLK_TZ_ATTENDANCE_RESULT T ) SELECT * FROM ALL_CLOCK FF WHERE (FF.CLOCK_IN BETWEEN TRUNC(SYSDATE-1) + 330 / 1440 AND --5.30-5.31 TRUNC(SYSDATE-1) + 331 / 1440 OR FF.CLOCK_IN BETWEEN TRUNC(SYSDATE-1) + 510 / 1440 AND --8.30-8.31 TRUNC(SYSDATE-1) + 511 / 1440 OR FF.CLOCK_IN BETWEEN TRUNC(SYSDATE-1) + 810 / 1440 AND --13.30-13.31 TRUNC(SYSDATE-1) + 811 / 1440 OR FF.CLOCK_IN BETWEEN TRUNC(SYSDATE-1) + 90 / 1440 AND --01.30-01.31 TRUNC(SYSDATE-1) + 91 / 1440 OR FF.CLOCK_IN BETWEEN TRUNC(SYSDATE-1) + 1050 / 1440 AND --17.30-17.31 TRUNC(SYSDATE-1) + 1051 / 1440 OR FF.CLOCK_IN BETWEEN TRUNC(SYSDATE-1) + 1230 / 1440 AND --20.30-20.31 TRUNC(SYSDATE-1) + 1231 / 1440) UNION ALL SELECT * FROM ALL_CLOCK FF WHERE (FF.CLOCK_OUT BETWEEN TRUNC(SYSDATE-1) + 330 / 1440 AND --5.30-5.31 TRUNC(SYSDATE-1) + 331 / 1440 OR FF.CLOCK_OUT BETWEEN TRUNC(SYSDATE-1) + 510 / 1440 AND --8.30-8.31 TRUNC(SYSDATE-1) + 511 / 1440 OR FF.CLOCK_OUT BETWEEN TRUNC(SYSDATE-1) + 810 / 1440 AND --13.30-13.31 TRUNC(SYSDATE-1) + 811 / 1440 OR FF.CLOCK_OUT BETWEEN TRUNC(SYSDATE-1) + 90 / 1440 AND --01.30-01.31 TRUNC(SYSDATE-1) + 91 / 1440 OR FF.CLOCK_OUT BETWEEN TRUNC(SYSDATE-1) + 1050 / 1440 AND --17.30-17.31 TRUNC(SYSDATE-1) + 1051 / 1440 OR FF.CLOCK_OUT BETWEEN TRUNC(SYSDATE-1) + 1230 / 1440 AND --20.30-20.31 TRUNC(SYSDATE-1) + 1231 / 1440);
最新发布
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值