`

Oracle ADD_MONTHS Test(01)

 
阅读更多
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;

 

分享到:
评论

相关推荐

    oracle_job.doc

    - **每半年定时执行**:例如,`Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24`,每年 7 月 1 日和 1 月 1 日凌晨 2 点。 - **每年定时执行**:例如,`Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2...

    Oracle定时器

    * 每半年定时执行:`add_months(trunc(sysdate,''yyyy''),6)+(2/24)` * 每年定时执行:`add_months(trunc(sysdate,''yyyy''),12)+(2/24)` Oracle 定时器实例: 创建表: ```sql CREATE TABLE zc_test ( name ...

    MySQL与Oracle的语法区别详细对比

    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

    Oracle_plsql常用方法汇总

    2. ADD_MONTHS:返回日期加(减)指定月份后(前)的日期 3. LAST_DAY:返回该月最后一天的日期 4. MONTHS_BETWEEN:返回日期之间的月份数 5. NEXT_DAY:返回下一个星期的日期 6. ROUND:舍入到最接近的日期 7. TRUNC:...

    Oracle中job的实例

    INTERVAL => ADD_MONTHS(TRUNC(SYSDATE,'YYYY'),6) + 2/24 ``` - `TRUNC(SYSDATE,'YYYY')`表示当前年份的第一天。 - `ADD_MONTHS(...,6)`表示六个月后的时间点。 - `2/24`表示每年的1月1日和7月1日凌晨2点执行...

    Oracle面试题及答案整理

    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,...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    * 每年 1 月 1 日凌晨 1 点执行:`interval => ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24` 四、job 定时任务执行示例 下面是一个完整的 job 定时任务执行示例: ```sql begin dbms_scheduler.create_job( job_...

    Oracle日期函数简介

    接下来,`ADD_MONTHS`函数非常有用,它接受一个日期和一个整数,返回该日期加上或减去指定月数后的结果: ```sql SELECT ADD_MONTHS('26-10月-05', 2) FROM DUAL; -- 增加两个月 SELECT ADD_MONTHS('26-10月-05', -...

    Oracle和mysql 的一些简单命令对比参照

    - **日期函数(增加一个月)**:Oracle使用`add_months()`函数,如`SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),1),'yyyy-mm-dd') from dual;`;MySQL使用`date_add()`函数,如`mysql> select ...

    java和oracle面试题笔试题.pdf

    3. 使用SQL语句完成下个月第一天的查询问题:该问题考察了日期函数的使用,通过使用ADD_MONTHS和TRUNC函数可以获取下个月第一天的日期。 知识点:日期函数、ADD_MONTHS函数、TRUNC函数 4. 使用SQL语句完成数据字典...

    java和oracle面试题笔试题-.pdf

    * 解释:使用ADD_MONTHS函数和TRUNC函数来获取下个月第一天的日期。 知识点4:Oracle数据库操作 * 在Oracle数据库中存在一张test表和test_dic表,使用SQL语句完成test表中三段的含义解释。 * 解释:使用IN操作符和...

    oracle函数

    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...

    pg库oracle兼容函数包orafce-3.3.0.zip

    - 日期时间处理:提供了Oracle风格的日期时间函数,如TO_CHAR、TO_DATE、ADD_MONTHS等,使得日期时间处理方式与Oracle保持一致。 2. 安装Orafce-3.3.0: 在安装Orafce之前,确保PostgreSQL服务已正确安装并运行。...

    oracle与mysql对比

    - 命令:`mysql> select date_add('2000-01-01', interval 1 month);` - **字符串操作**: - **Oracle**: - 命令:`SQL> select substr('abcdefg', 1, 5) from dual;` - **MySQL**: - 截取字符串:`mysql> ...

    oracle函数实例分析

    - 示例:`SELECT ADD_MONTHS(SYSDATE, 1) FROM dual;` - 作用:将当前日期向前或向后增加指定的月份。 - **NEXT_DAY()**:返回指定日期之后的第一个工作日。 - 示例:`SELECT NEXT_DAY(SYSDATE, 2) FROM dual;` ...

    Mysql与Oracle常用命令比较

    - **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);` #### 六、其他常用操作 ...

    oracle数据库之间同步数据 dbLink +job方式

    - 每季度第一个月的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)...

    job定时器操作存储过程

    INTERVAL => ADD_MONTHS(TRUNC(SYSDATE, 'YY'), 12) + 2/24 ``` 通过上述内容,我们可以看到Oracle JOB定时器的强大功能,它不仅能够自动执行存储过程,还支持多种复杂的时间间隔设置,极大地提高了数据库管理的...

Global site tag (gtag.js) - Google Analytics