1、Sysdate 当前日期和时间
SQL> Select sysdate from dual;

2、Last_day() 时间所在月的最后一天
SQL> Select last_day(sysdate) from dual;

3、Add_months(d,n) 当前日期d后推n个月 用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months)
SQL> Select add_months(sysdate,2) from dual;

4、Months_between(f,s) 日期f和s间相差月数
SQL> select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))from dual;

5、NEXT_DAY(d, day_of_week) 返回由"day_of_week"命名的,在变量"d"指定的日期之后的第几个工作日的日期 。参数"day_of_week"必须为该星期中的某一天。

SELECT next_day(to_date('20050620','YYYYMMDD'),1) FROM dual;
select next_day(sysdate,3) from dual;表示第三工作日,外国第一个工作为周日。注意如果今天是周一,则表示这周的周二,如果这周周二已经过了,则表示下周的周二

6、current_date()返回当前会话时区中的当前日期 date_value:=current_date
SQL> column sessiontimezone for a15 SQL> select sessiontimezone,current_date from dual;
SQL> alter session set time_zone='-11:00' 2 / 会话已更改。
SQL> select sessiontimezone,current_timestamp from dual;

7、dbtimezone()返回时区
SQL> select dbtimezone from dual;

8、extract()找出日期或间隔值的字段值 date_value:=extract(date_field from [datetime_value|interval_value])
SQL> select extract(month from sysdate) "This Month" from dual;
SQL> select extract(year from add_months(sysdate,36)) " Years" from dual;
SQL>select extract(day from add_months(sysdate,0)) " Day" from dual;
9、TRUNC(for dates) TRUNC函数为指定元素而截去
的日期值。
其具体的语法格式如下:
TRUNC(date,[fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:

1)按年截尾
select TRUNC(TO_DATE('2008-03-01 08:23','yyyy-mm-dd hh:mi'),'yyyy') from dual
-----------------------------------------------------------
2008-1-1
2)按月截尾
select TRUNC(TO_DATE('2008-03-01 08:23','yyyy-mm-dd hh:mi'),'mm') from dual
--------------------------------------------------------
2008-3-1
3)按日截尾
select TRUNC(TO_DATE('2008-03-01 08:23','yyyy-mm-dd hh:mi'),'dd') from dual
----------------------------------------------------------------------
2008-3-1
4)按时截尾
select TRUNC(TO_DATE('2008-03-01 08:23','yyyy-mm-dd hh:mi'),'hh') from dual
----------------------------------------------------------------------
2008-3-1 8:00:00
5)按分截尾
select TRUNC(TO_DATE('2008-03-01 08:23','yyyy-mm-dd hh:mi'),'mi') from dual
----------------------------------------------------------------------
2008-3-1 8:23:00

10、TO_DATE
如:

Select to_char(sysdate,'YYYY-MM-DD HH:MM:SS') from dual;
Select to_char(sysdate,'SYEAR') from dual; --显示英文年
Select to_char(sysdate,'MM') from dual;    --显示月份
Select to_char(sysdate,'RM') from dual; --显示月份
Select to_char(sysdate,'Month') from dual; --月份
Select to_char(sysdate,'WW') from dual; --本月第几周
Select to_char(sysdate+1,'W') from dual; --本年第几周
Select to_char(sysdate,'DDD') from dual; --本年第几天
Select to_char(sysdate,'DD') from dual; --本月第几天
Select to_char(sysdate,'ddspth ') from dual; --本月第几天
Select to_char(sysdate,'D') from dual;   --本周第几天
Select to_char(sysdate,'DY') from dual; --显示星期
Select to_char(sysdate,'DAY') from dual; --显示星期
Select to_char(sysdate,'HH') from dual; --12小时制
Select to_char(sysdate,'HH24') from dual; --24小时制
Select to_char(sysdate,'q') from dual; --显示季度

11、两个日期间的天数
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;

12、select trunc(sysdate,'Q') from dual; --本季度第一天
    select trunc(sysdate,'D')from dual;   --本周的第一天(周日)
13、......

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐