• 04-oracle时间函数


    add_months(sysdate,x)x月之后的日期;
    last_day(sysdate)指定日期所在月份的最后一天;
    next_day(sysdate,'星期x')当前日期后的下一个星期x;

    months_between(sysdate,hiredate) 两个日期之间的月份间隔;

    extract(year/month/day from sysdate;year/month/day from date '2019-10-1')从日期字符串中分离出年月日;取得时间间隔

    select hiredate 雇佣日期,
    last_day(hiredate) 雇佣当月的最后1天,
    next_day(hiredate,'星期二') 雇佣后第一个星期二的日期,
    add_months(hiredate,6) 雇佣6个月后的日期,
    months_between(sysdate,hiredate) 当前日期到雇佣日期之间的月数
    from emp;

    --sqlplus下默认只显示年月日不显示时间,设置以24小时制和12小时制的语句分别如下:

    SQL> alter session set nls_date_format='yyyy-mm-dd hh12:mi:ss';

    Session altered.

    SQL> select sysdate from dual;

    SYSDATE
    --------------------
    2019-04-10 09:54:56

    SQL> alter session set nls_date_format='yyyy-mm-dd hh12:mi:ss';

    Session altered.

    SQL> select sysdate from dual;

    SYSDATE
    --------------------
    2019-04-10 09:54:56

    --日期-数字=日期
    --日期+数字=日期
    --日期-日期=数字(天数)
    --日期+日期 错误语法
    select sysdate,sysdate+3,sysdate-3 from dual;

     

    select ename, hiredate,sysdate-hiredate 雇佣至今天数,(sysdate-10)-hiredate 到十天前的雇佣天数 from emp;

    --add_months(当前日期,x)  x月之后/之前的日期
    select sysdate 当前日期,
    add_months(sysdate,3) 三个月之后的日期,
    add_months(sysdate,-3) 三个月之前的日期,
    add_months(sysdate,60) 六十个月之后的日期
    from dual;

    select ename,hiredate 雇佣日期,add_months(hiredate,3)雇佣日期3个月后的日期 from emp;

    --next_day(sysdate,'星期X') 下个星期X的日期

    select sysdate 当前日期,
    next_day(sysdate,'星期日') 下个星期日的日期,
    next_day(sysdate,'星期二') 下个星期二的日期
    from dual;

    --last_day(sysdate)指定日期所在月份的最后一天
    select sysdate,last_day(sysdate) from dual;

    --查询雇佣日期为所在月份倒数第三天的员工信息。
    select ename,job,
    hiredate,last_day(hiredate) 雇佣日期坐在月的最后一天
    from emp
    where last_day(hiredate)-2=hiredate;

    --months_between(sysdate,hiredate) 两个日期之间的月份间隔数
    --查询员工的雇佣总月数和年数
    select ename,job,hiredate,
    trunc(months_between(sysdate,hiredate)) 当前日期和雇佣日期间隔的月数,
    trunc(months_between(sysdate,hiredate)/12) 雇佣年数即雇月数除以12
    from emp;

    --员工入职至今的共x年x月x天

    select ename 姓名, hiredate 雇佣日期,
    trunc(months_between(sysdate,hiredate)/12) 年数,
    trunc(mod(months_between(sysdate,hiredate),12)) 月数,
    trunc(sysdate-add_months(hiredate,months_between(sysdate,hiredate))) 天数
    from emp;

    --extract(year/month/day from sysdate;year/month/day from date '2019-10-1')从日期字符串中分离出年月日
    select
    extract(year from sysdate) 年,
    extract(month from sysdate) 月,
    extract(day from sysdate) 日
    from dual;

    select
    extract(day from time_one-time_two)
    from(
    select
    to_timestamp('2019-10-1 19:12:33','yyyy-mm-dd hh24:mi:ss') time_one,
    to_timestamp('2018-9-11 22:10:55','yyyy-mm-dd hh24:mi:ss') time_two
    from dual);

    select a 日期1,b 日期2,a-b 日期1减日期2,
    extract(day from a-b) 日期1减日期2的day,
    extract(year from a)-extract(year from b) 日期1减日期2的year
    from
    (
    select to_timestamp('2019-12-14 18:34:45','yyyy-mm-dd hh24:mi:ss') a,
    to_timestamp('1998-1-30 22:33:15','yyyy-mm-dd hh24:mi:ss') b
    from dual
    );

  • 相关阅读:
    jQuery Ajax 方法调用 Asp.Net WebService 的详细例子(原创)
    jQuery 访问WebService 返回复合类型列表
    Vista Media Center 开发之深入浅出 (一) Vista Media Center开发环境的搭建
    安装一个媒体解码器让 Windows Media Player 支持更多媒体格式
    静静期待 Windows 7 的到来
    集成 RealTek 声卡 在 Windows 7 有杂音、爆音的解决方法
    使用jQuery for Asp.Net 我的开发环境配置
    Windows 7 VHD 启动
    建立一个 C#.Net Windows Service 程序
    Windows server 2008 r2 简体中文180天评估版微软官方下载地址
  • 原文地址:https://www.cnblogs.com/joeshang/p/10686699.html
Copyright © 2020-2023  润新知