(1)sysdate:返回当前系统的日期时间
SELECT sysdate FROM dual;
(2)日期类型和数字类型可以做加减运算:一个日期加减一个数字返回的还是一个日期(单位是天)
-- 3天后
SELECT sysdate+3 FROM dual;
-- 100天以前
SELECT sysdate-100 FROM dual;
-- 25分钟以后
SELECT sysdate+1/24/60*25 FROM dual;
(3)一个日期减去另外一个日期返回的是两个日期间隔的天数
SELECT hire_date,trunc(sysdate-hire_date) AS 间隔天数 FROM emp;
(4)months_between(日期1,日期2):返回两个日期间隔多少个月
例:查询每个员工的编号,姓名,入职日期,工龄
SELECT employee_id,last_name,hire_date,
trunc(months_between(sysdate,hire_date)/12) AS 工龄
FROM employees;
(5)add_months(日期,N):给一个日期加减若干个月,返回一个新日期,N为正数表示加,负数表示减
例:当前是将
SELECT add_months(sysdate,-15) FROM dual;
(6)查询入职超过20年的员工信息(months_between和add_months两种方式)
SELECT *
FROM employees
WHERE trunc(months_between(sysdate,hire_date)/12)>=20;
SELECT *
FROM employees
WHERE add_months(hire_date,20 * 12)<=sysdate;
(7)next_day(日期,星期几):返回以指定日期为准,下一个最近的星期几的日期
SELECT next_day(sysdate,'星期五') FROM dual;
PS:可以用数字1~7代表日~六
SELECT next_day(sysdate,7) FROM dual;
(8)last_day(日期):返回指定日期的月最后一天的日期
SELECT last_day(sysdate) FROM dual;
(9)round(日期[,日期单位]):对日期进行四舍五入
SELECT round(sysdate) FROM dual;
SELECT round(sysdate,'month') FROM dual;
SELECT round(sysdate,'year') FROM dual;
(10)trunc(日期[,日期单位]):对日期进行截断
SELECT trunc(sysdate) FROM dual;
SELECT trunc(sysdate,'month') FROM dual;
SELECT trunc(sysdate,'year') FROM dual;