• 有关日期的函数操作用法总结,to_date(),trunc(),add_months();


    相关知识链接:

    Oracle trunc()函数的用法

    oracle add_months函数

    Oracle日期格式转换,tochar(),todate()

    №2:取得当前日期是一个星期中的第几天,注意星期日是第一天

    select   sysdate,to_char(sysdate,'D')   from   dual;   

    结果:

    2017/1/4 14:08:00        4

    类似:

    select   to_char(sysdate,'yyyy')   from   dual;   --
    select   to_char(sysdate,'Q'   from   dual;           --
    select   to_char(sysdate,'mm')   from   dual;       --
    select   to_char(sysdate,'dd')   from   dual;       --
    ddd   年中的第几天   
    WW   年中的第几个星期   
    W   该月中第几个星期   
    D   周中的星期几   
    hh   小时(12)   
    hh24   小时(24)   
    Mi   分   
    ss   秒

    №3:取当前日期是星期几中文显示:

     select   to_char(sysdate,'day')   from   dual;   
    
    输出结果:星期三

    №5: 得到当前的日期

    select sysdate from dual;
    输出结果:2017/1/4 14:11:17

    №6: 得到当天凌晨0点0分0秒的日期

    select trunc(sysdate) from dual;
    输出结果:2017/1/4

    -- 得到这天的最后一秒

    select trunc(sysdate) + 0.99999 from dual;
    输出结果:2017/1/4 23:59:59

    -- 得到小时的具体数值

    select trunc(sysdate) + 1/24 from dual;
    
    select trunc(sysdate) + 7/24 from dual;

    №7:得到明天凌晨0点0分0秒的日期

    select trunc(sysdate+1) from dual;
    
    select trunc(sysdate)+1 from dual;

    №8: 本月一日的日期

    select trunc(sysdate,'mm') from dual;
    输出结果:2017/1/1

    №9:得到下月一日的日期

    select trunc(add_months(sysdate,1),'mm') from dual;
    输出结果:2017/2/1

    №10:返回当前月的最后一天?

    select last_day(sysdate)  from dual;        
    select last_day(trunc(sysdate))  from dual;  
    select trunc(last_day(sysdate))  from dual;
    select trunc(add_months(sysdate,1),'mm') - 1 from dual;//下个月一号减一天

    №11: 得到一年的每一天

    select trunc(sysdate,'yyyy')+ rn -1 date0 
    from 
    (select rownum rn from all_objects 
    where rownum<366);

    获取本月第一天开始的7周的周一

    select trunc(sysdate,'mm')+rn*7-7 from 
    (
    select rownum rn from all_objects
    where rownum<7
    )

    结果:

    获取本周1开始的7周的周一
    (注意,trunc(sysdate,'d')得到的是上周的周天,在美国来说相当于这周的第一天,因此trunc(sysdate,'d')+1+rn*7-7=trunc(sysdate,'d')-6+rn*7)

    select trunc(sysdate,'d')-6+rn*7 from 
    (
    select rownum rn from all_objects
    where rownum<7
    )

    结果:

    №12:今天是今年的第N天

    SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

    №13:如何在给现有的日期加上2年

    select add_months(sysdate,24) from dual;

    №14:判断某一日子所在年分是否为润年 

    select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;

    №15:判断两年后是否为润年

    select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','闰年','平年') from dual;

    №16:得到日期的季度

    select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;
    
    select to_char(sysdate, 'Q') from dual; 
     
     
  • 相关阅读:
    Do the “StreamWriter.WriteLine()” function need to “lock()”?
    SQL Server Integration Services C#脚本任务示例 先看前二部分
    使用SSIS脚本任务触发事件,执行T-SQL命令并运行SMO 第二部分
    Getting started with the SSIS Script Task 第一部分
    对SQL Server的监控和报告
    在Visual Studio 2019中安装SQL Server Integration Services
    .Net ObjectContext.CreateQuery<T>(String, ObjectParameter[]) Method
    使用Redgate的SQL Monitor优化SQL Server资产监视
    将多行汇总为SQL Server数据的一行和一列
    用于SQL源的Power BI增量刷新
  • 原文地址:https://www.cnblogs.com/alsf/p/6248571.html
Copyright © 2020-2023  润新知