• Oracle获取一周前,一个月前,一年前, 本周,本月,当年的日期


    1、获取当前时间一周前的日期

    select  sysdate - interval '7' day  from dual 

    类似的

     1 --当前时间减去7分钟的时间
     2 select  sysdate,sysdate - interval '7' MINUTE  from dual
     3 --当前时间减去7小时的时间
     4 select  sysdate - interval '7' hour  from dual
     5 --当前时间减去7天的时间
     6 select  sysdate - interval '7' day  from dual
     7 --当前时间减去7月的时间
     8 select  sysdate,sysdate - interval '7' month from dual
     9 --当前时间减去7年的时间
    10 select  sysdate,sysdate - interval '7' year   from dual
    11 --时间间隔乘以一个数字
    12 select  sysdate,sysdate - 8 *interval '2' hour   from dual

    2、获取当前时间一个月前的日期

    select add_months(sysdate,-1) from dual 

    3、获取当前时间一年前的日期

    select add_months(sysdate,-12) from dual 

    4.获取本周

    select * fromwhere time > sysdate - (to_char(sysdate-1,'D'));

    5.获取本月

    select * fromwhere time>=TRUNC(SYSDATE, 'MM') and time<=last_day(SYSDATE);

    6. 获取当年时间的数据

    1 Select * FromWhere To_Char(Time,'yyyy')=To_Char(Sysdate,'yyyy');
    2 或者
    3 Select * FromWhere Time >= trunc(Sysdate,'yyyy');

    例子:

     1 --当前时间的最近一个月
     2 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >= Add_Months(Sysdate,-1);
     3 --当前时间的一个月前
     4 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date < Add_Months(Sysdate,-1);
     5 --获取当前时间一年前的日期
     6 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date < Add_Months(Sysdate,-12);
     7 --获取当前时间近一周
     8 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >Sysdate - Interval '7' Day;
     9 --本周
    10 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >Sysdate - (To_Char(Sysdate-1,'D'))  Order By Create_Date Asc;
    11 --本月
    12 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where create_date >=TRUNC(SYSDATE, 'MM') and Create_Date <=last_day(SYSDATE)  Order By Create_Date Asc;
    13 --当年
    14 Select  To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where To_Char(Create_Date,'yyyy') = To_Char(Sysdate,'yyyy');
    15 --当年
    16 Select  To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >= trunc(Sysdate,'yyyy');

    说明:

    1. 当前时间减去7月的时间 sysdate - interval '7' month  的实现方式 和 当前时间的7月 Add_Months(Sysdate,-7) 实现结果是一样的
    1 --当前时间的近7月的时间数据
    2 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >(Sysdate - Interval '7' Month) order by Create_Date asc ;
    3 --当前时间的近7月的时间数据
    4 Select To_Char(Create_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >= Add_Months(Sysdate,-7) order by Create_Date asc;

     2. 外国都是以周日作为每周的第一天,所以在调用Sysdate - To_Char(Sysdate-1,'D') 计算本周时,要大于这个时间,不能是包括

    select sysdate 当前时间 , sysdate - interval '7' day 当前时间近一周 ,Sysdate - To_Char(Sysdate-1,'D') 本周 from dual;

      运行结果为:

     

  • 相关阅读:
    JQuery 简单实现折叠菜单
    机械迷城攻略2
    ffmpeg视频转换及截图
    机械迷城攻略3
    SQL:清空数据库所有数据
    .net发送邮件outlook中文乱码
    我读我的Book
    转:精妙SQL语句收集
    SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果
    软件开发中,这些文档你用到了吗
  • 原文地址:https://www.cnblogs.com/hanxue53/p/9599490.html
Copyright © 2020-2023  润新知