DECLARE M_DATE1 DATE; M_VARCHAR2 VARCHAR2(30) := '5'; M_INTO1 VARCHAR2(50); M_INTO2 VARCHAR2(50); M_INTO3 VARCHAR2(50); M_INTO4 VARCHAR2(50); M_INTO5 VARCHAR2(50); -- M_INTO6 VARCHAR2(50); M_INTO7 VARCHAR2(50); M_INTO8 VARCHAR2(50); BEGIN SELECT ADD_MONTHS(DATE '2015-01-01', -2) INTO M_DATE1 FROM DUAL; DBMS_OUTPUT.put_line(TO_CHAR(M_DATE1, 'YYYY-MM-DD')); --SELECT ADD_MONTHS((M_DATE1 + M_VARCHAR2 - 1), -1) INTO M_INTO1 FROM DUAL; SELECT TO_CHAR(ADD_MONTHS((M_DATE1 + M_VARCHAR2 - 1), -1), 'YYYY-MM-DD') INTO M_INTO1 FROM DUAL; DBMS_OUTPUT.put_line(M_INTO1); IF TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) = 19 THEN DBMS_OUTPUT.put_line('1号'); END IF; SELECT TO_CHAR(SYSDATE - 5, 'YYYY-MM-DD HH24:MM:SS') INTO M_INTO2 FROM DUAL; SELECT TO_DATE('2014-06-10 12:05:22', 'YYYY-MM-DD HH24:MI:SS') INTO M_INTO3 FROM DUAL; /* SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM') FIRST_DAY LAST_DAY(ADD_MONTHS(SYSDATE, -1)) LAST_DAY FROM DUAL;*/ -- SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM') INTO M_INTO4 FROM DUAL; -- SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) LAST_DAY INTO M_INTO5 FROM DUAL; --上月第一天 SELECT TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM'), 'YYYY-MM-DD') INTO M_INTO4 FROM DUAL; --上月最后一天 SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)), 'YYYY-MM-DD') INTO M_INTO5 FROM DUAL; --本月第一天 SELECT TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE, 0), 'MM'), 'YYYY-MM-DD') INTO M_INTO4 FROM DUAL; --上一年的第一天 SELECT TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE, -1), 'YY'), 'YYYY-MM-DD') INTO M_INTO4 FROM DUAL; DBMS_OUTPUT.put_line(TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM')); DBMS_OUTPUT.put_line(M_INTO4); DBMS_OUTPUT.put_line(M_INTO5); --加减时间练习 SELECT TO_CHAR(DATE '2015-01-01' - 1, 'YYYY-MM-DD') INTO M_INTO6 FROM DUAL; SELECT TO_CHAR(TO_DATE('2015-02-01 15:14:21', 'yyyy-MM-dd HH24:mi:ss') - 1, 'YYYY-MM-DD') INTO M_INTO7 FROM DUAL; SELECT TO_CHAR(TO_DATE('2015-02-01 15:14:21', 'yyyy-MM-dd HH24:mi:ss') - 1, 'YYYY-MM-DD HH24:mi:ss') INTO M_INTO8 FROM DUAL; END;
相关推荐
- **每半年定时执行**:例如,`Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24`,每年 7 月 1 日和 1 月 1 日凌晨 2 点。 - **每年定时执行**:例如,`Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2...
* 每半年定时执行:`add_months(trunc(sysdate,''yyyy''),6)+(2/24)` * 每年定时执行:`add_months(trunc(sysdate,''yyyy''),12)+(2/24)` Oracle 定时器实例: 创建表: ```sql CREATE TABLE zc_test ( name ...
Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,’yyyy-mm-dd’) from dual; SQL> select to_char(sysdate,... 日期函数 增加一个月: SQL> select to_char(add_months(to_date (‘20000101′,’yyy
2. ADD_MONTHS:返回日期加(减)指定月份后(前)的日期 3. LAST_DAY:返回该月最后一天的日期 4. MONTHS_BETWEEN:返回日期之间的月份数 5. NEXT_DAY:返回下一个星期的日期 6. ROUND:舍入到最接近的日期 7. TRUNC:...
INTERVAL => ADD_MONTHS(TRUNC(SYSDATE,'YYYY'),6) + 2/24 ``` - `TRUNC(SYSDATE,'YYYY')`表示当前年份的第一天。 - `ADD_MONTHS(...,6)`表示六个月后的时间点。 - `2/24`表示每年的1月1日和7月1日凌晨2点执行...
TO_CHAR(ADD_MONTHS(TO_DATE(MONTHS, 'YYYYMM'), -1), 'YYYYMM'), LAG(INCOMES) OVER (ORDER BY MONTHS), 0) AS PREV_MONTHS, DECODE(LEAD(MONTHS) OVER (ORDER BY MONTHS), TO_CHAR(ADD_MONTHS(TO_DATE(MONTHS,...
* 每年 1 月 1 日凌晨 1 点执行:`interval => ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24` 四、job 定时任务执行示例 下面是一个完整的 job 定时任务执行示例: ```sql begin dbms_scheduler.create_job( job_...
接下来,`ADD_MONTHS`函数非常有用,它接受一个日期和一个整数,返回该日期加上或减去指定月数后的结果: ```sql SELECT ADD_MONTHS('26-10月-05', 2) FROM DUAL; -- 增加两个月 SELECT ADD_MONTHS('26-10月-05', -...
- **Oracle**: 使用 `SQL> select to_char(add_months(to_date('20000101', 'yyyymmdd'), 1), 'yyyy-mm-dd') from dual;` - **MySQL**: 使用 `mysql> select date_add('2000-01-01', interval 1 month);` - **别名...
3. 使用SQL语句完成下个月第一天的查询问题:该问题考察了日期函数的使用,通过使用ADD_MONTHS和TRUNC函数可以获取下个月第一天的日期。 知识点:日期函数、ADD_MONTHS函数、TRUNC函数 4. 使用SQL语句完成数据字典...
* 解释:使用ADD_MONTHS函数和TRUNC函数来获取下个月第一天的日期。 知识点4:Oracle数据库操作 * 在Oracle数据库中存在一张test表和test_dic表,使用SQL语句完成test表中三段的含义解释。 * 解释:使用IN操作符和...
SELECT sysdate S1, MONTHS_BETWEEN('2004-04-01', sysdate) S2, MONTHS_BETWEEN('2004-04-01', '2004-02-01') S3 FROM dual; ``` - **NEXT_DAY**: 返回下一个指定星期的日期。 ```sql SELECT sysdate S1, NEXT...
- 日期时间处理:提供了Oracle风格的日期时间函数,如TO_CHAR、TO_DATE、ADD_MONTHS等,使得日期时间处理方式与Oracle保持一致。 2. 安装Orafce-3.3.0: 在安装Orafce之前,确保PostgreSQL服务已正确安装并运行。...
- 命令:`mysql> select date_add('2000-01-01', interval 1 month);` - **字符串操作**: - **Oracle**: - 命令:`SQL> select substr('abcdefg', 1, 5) from dual;` - **MySQL**: - 截取字符串:`mysql> ...
- 示例:`SELECT ADD_MONTHS(SYSDATE, 1) FROM dual;` - 作用:将当前日期向前或向后增加指定的月份。 - **NEXT_DAY()**:返回指定日期之后的第一个工作日。 - 示例:`SELECT NEXT_DAY(SYSDATE, 2) FROM dual;` ...
- 每季度第一个月的11号凌晨11点59分:`'TRUNC(ADD_MONTHS(SYSDATE+2/24,3),'Q')-1/24'` - 每周六或周日的早上6点10分:`'TRUNC(LEAST(NEXT_DAY(SYSDATE,''SATURDAY"),NEXT_DAY(SYSDATE,"SUNDAY")))+6*60+10/(24*60)...
INTERVAL => ADD_MONTHS(TRUNC(SYSDATE, 'YY'), 12) + 2/24 ``` 通过上述内容,我们可以看到Oracle JOB定时器的强大功能,它不仅能够自动执行存储过程,还支持多种复杂的时间间隔设置,极大地提高了数据库管理的...