Oracle之日期函数
sysdate: 函数返回当前服务器的系统日期时间。如果函数没有参数,则不能有"()"。
案例1:查询当前系统时间
select sysdate from dual;
案例2:使用sysdate作为列的默认值create table t_user(
userid number primary key,
username varchar2(20),
password varchar2(20),
birth date default sysdate
)
(1) 函数与数字可进行加减运算,即date+n为指定的日期后n天的日期,date-n为指定日期前n天的日期select sysdate+4 from dual;
(2) add_months(date1, n):求n个月后的日期
select add_months(sysdate,3) from dual;
(3) month_between(date1, date2):求指定的两个日期之间所经历的月数
--案例:查询所有员工姓名以及入职了几个月select ename, months_between(hiredate,sysdate) ms from emp;
(4) round(date, 'MONTH'|'YEAR'):日期的四舍五入
1) round(date, 'MONTH'):如果date的天数>=16日,则函数返回date的下个月第一天,否则返回date当月第一天。
select round(sysdate,'MONTH') from dual;
2) round(date, 'YEAR'):如果date的月数>=7月,则函数返回date的下一年的第一天,否则返回本年的第一天。
select round(sysdate,'YEAR') from dual;
(5) trunc(date, 'month'|'year'):求本月或本年的第一天
select trunc(sysdate,'YEAR') from dual;
(6) extract(year|month from date):求date的年或者月的整数值select extract(year from sysdate) year, extract(month from sysdate) month from dual;
--案例:查询1987年入职的员工: select * from emp where extract(year from hiredate)=1987