zoukankan      html  css  js  c++  java
  • 日期函数(学习笔记)

    --********************日期函数
    --获取当前系统时间

    SELECT SYSDATE FROM dual;

    获取的是当前系统的时间
    --查询距离今天3天后,和3天前的日期

    SELECT SYSDATE 今天,
    SYSDATE-3 三天前,
    SYSDATE+3 三天后 
    FROM dual;


    --查询出每个员工入职到今天的入职天数,以及十天前每个员工的入职天数

    SELECT e.hiredate 入职日期,
    SYSDATE 今天,
    SYSDATE-e.hiredate 入职到今天的天数,
    SYSDATE-10-e.hiredate 十天前的入职天数
    FROM emp e;

    --使用trunc截取天数

    SELECT e.hiredate 入职日期,
    SYSDATE 今天,
    trunc(SYSDATE-e.hiredate) 入职到今天的天数,
    trunc(SYSDATE-10-e.hiredate) 十天前的入职天数
    FROM emp e;


    --MONTHS_BETWEEN(日期1,日期2)求出2个日期之间的月数
    --ADD_MONTHS(日期,数字) 求出在指定日期上加或者减指定的月数,数字,可以为正也可以为负
    --NEXT_DAY(日期,星期几)求出下个星期的具体日期
    --LAST_DAY(日期 )指定日期的最后一天的日期
    --EXTRACT(格式 FROM 日期)将日期分豁,或者计算2个日期的间隔

    --ADD_MONTHS(日期,数字)

    SELECT SYSDATE 当前日期,
    add_months(SYSDATE,3) 三个月之后的日期,
    add_months(SYSDATE,-3) 三个月之前的日期,
    add_months(SYSDATE,60) 六十个月之后的日期
    FROM dual;


    --查询所有员工在入职3个月后的日期

    SELECT e.empno,e.ename,e.hiredate,add_months(e.hiredate,3)入职三个月的日期
    FROM emp e;


    --NEXT_DAY(日期,星期几)

    SELECT SYSDATE 当前日期,
    next_day(SYSDATE,'星期五') 下个星期五,
    next_day(SYSDATE,'星期一') 下个星期一
    FROM dual;


    --LAST_DAY()一个月的最后一天日期

    SELECT SYSDATE,last_day(SYSDATE) FROM dual;

    获取当前月的最后一天日期

    --查询所有在入职日期在当月最后第三天入职的员工,最后一天-2

    SELECT e.empno,e.ename,e.hiredate
    FROM emp e
    WHERE e.hiredate=last_day(e.hiredate)-2;


    --MONTHS_BETWEEN
    --查询每个员工的编号,姓名,入职日期,入职的月数和年份
    --月数MONTHS_BETWEEN(SYSDATE,hiredate)年数MONTHS_BETWEEN(SYSDATE,hiredate)/12

    SELECT e.empno,e.ename,e.hiredate,
    trunc(months_between(SYSDATE,e.hiredate)) 入职的月数,
    trunc(months_between(SYSDATE,e.hiredate)/12) 入职的年数
    FROM emp e;


    --查询每个员工的编号,姓名,入职日期,已经入职的年份,月份和天数
    --总月数,和12求模就是月数
    --日用当前日期-(入职日期+月数)

    SELECT e.empno,e.ename,e.hiredate,
    TRUNC(months_between(SYSDATE,e.hiredate)/12) 年,
    TRUNC(MOD(months_between(SYSDATE,e.hiredate),12)) 月,
    TRUNC(SYSDATE-add_months(e.hiredate,months_between(SYSDATE,e.hiredate))) 日
    FROM emp e;


    --extract函数

    SELECT SYSDATE,
    EXTRACT(YEAR FROM SYSDATE)年,
    EXTRACT(MONTH FROM SYSDATE) 月,
    EXTRACT(DAY FROM SYSDATE) 日
    FROM dual;

    --从时间戳中取出年,月,日,时,分,秒

    SELECT SYSTIMESTAMP,
    EXTRACT(YEAR FROM SYSTIMESTAMP)年,
    EXTRACT(MONTH FROM SYSTIMESTAMP) 月,
    EXTRACT(DAY FROM SYSTIMESTAMP) 日,
    EXTRACT(HOUR FROM SYSTIMESTAMP) 时,
    EXTRACT(MINUTE FROM SYSTIMESTAMP) 分,
    EXTRACT(SECOND FROM SYSTIMESTAMP) 秒
    FROM dual;
  • 相关阅读:
    406. 根据身高重建队列 vector 自定义排序
    5552. 到家的最少跳跃次数 BFS
    5602. 将 x 减到 0 的最小操作数 双指针
    Hadoop Container is running beyond memory limits code143
    1122. 数组的相对排序 自定义排序
    328. 奇偶链表 链表
    127. 单词接龙 bfs
    5600. 第 K 条最小指令 组合数学
    5548. 最小体力消耗路径 二分
    1024. 视频拼接 dp
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4208071.html
Copyright © 2011-2022 走看看