• Oracle基础 (十三)日期函数


    日期函数

    SYSDATE

    --当前系统时间
    select sysdate from dual;

    EXTRACT

    --获取当前年份
    select extract(year from sysdate) from dual; --
    select extract(month from sysdate) from dual; --
    select extract(day from sysdate) from dual; --

    TO_DATE

    --将字符串转换为日期
    SELECT TO_DATE('2014-12-31', 'yyyy-mm-dd') FROM DUAL;
    SELECT TO_DATE('2014-12-31 15:20:45', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
    SELECT TO_DATE('2014年12月31日', 'yyyy"年"mm"月"dd"日') AS T FROM DUAL;
    --两个日期间的天数      
    SELECT FLOOR(SYSDATE - TO_DATE('20141201', 'yyyymmdd')) FROM DUAL;

    TO_DATE格式(以时间:2007-11-02 13:45:25为例)

    类别

    格式

    说明

    Year

    yy

    two digits 两位年

    07

    yyy

    three digits 三位年

    007

    yyyy

    four digits 四位年

    2007

    Month

    mm

    number 两位月

    11

    mon

    abbreviated 字符集表示

    11月,若是英文版,显示nov

    month

    spelled out 字符集表示

    若是英文版,显示november

    Day:

    dd

    number当月第几天

    02

    ddd

    number当年第几天

    02

    dy

    abbreviated 当周第几天简写

    星期五,若是英文版,显示fri

    day  

    spelled out 当周第几天全写

    星期五,若是英文版,显示friday

    Hour:

    hh

    two digits 12小时进制

    01

    hh24

    two digits 24小时进制

    13

    Minute

    mi

    two digits 60进制

    45

    Second

    ss

    two digits 60进制

    25

    其他:

    Q

    digit季度

    4

    WW digit 当年第几周 44
    W digit 当月第几周 1

    TO_CHAR

    SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') AS NOWTIME FROM DUAL; --日期转化为字符串   
    SELECT TO_CHAR(SYSDATE, 'yyyy') AS NOWYEAR FROM DUAL;          --获取时间的年   
    SELECT TO_CHAR(SYSDATE, 'mm') AS NOWMONTH FROM DUAL;           --获取时间的月   
    SELECT TO_CHAR(SYSDATE, 'dd') AS NOWDAY FROM DUAL;             --获取时间的日   
    SELECT TO_CHAR(SYSDATE, 'hh24') AS NOWHOUR FROM DUAL;          --获取时间的时   
    SELECT TO_CHAR(SYSDATE, 'mi') AS NOWMINUTE FROM DUAL;          --获取时间的分   
    SELECT TO_CHAR(SYSDATE, 'ss') AS NOWSECOND FROM DUAL;          --获取时间的秒    
    SELECT TO_CHAR(SYSDATE, 'yyyy"年"mm"月"dd"日') AS T FROM DUAL; --带中文的时间格式

    MONTHS_BETWEEN(date1,date2)

    --计算两个日期之间的月份差
    select months_between('1-1月-2014', '31-12月-2014') from dual;
    结果:-11.9677419354839

    ADD_MONTHS(date,month)

    --月份的添加,2014-5-20后的3个月
    select add_months('20-5月-2014', 3) from dual;
    结果:2014/8/20
    
    --月份的添加,2014-5-20前的3个月
    select add_months('20-5月-2014', -3) from dual;
    结果:2014/2/20

    NEXT_DAY(date,week)

    --返回指定日期后的星期,返回今天后的下一个星期六是多少号
    select next_day(sysdate, '星期六') from dual;

    LAST_DAY

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

    ROUND

    --按照指定格式对日期进行四舍五入
    select round(sysdate, 'year') from dual; --按照年
    select round(sysdate, 'month') from dual; --按照月
    select round(to_date('2014-11-16', 'yyyy-mm-dd'), 'day') from dual; --按照星期
    select round(to_date('2014-11-16', 'yyyy-mm-dd'), 'dd') from dual; --按照日期
  • 相关阅读:
    判断质数
    猜拳三局两胜
    输入年月日判断是这一年的哪一天
    switch case
    猜拳
    判断年月日是否正确
    老狼老狼几点了
    判断是否中奖
    平滑部署war包到tomcat-deploy.sh
    只用120行Java代码写一个自己的区块链-3挖矿算法
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4187011.html
Copyright © 2020-2023  润新知