Oracle关于时间的操作

Oracle获取时间

作者:邱名涛
撰写时间:2019年04月08日
关键技术:Oracle

//SYSDATE:当前时间
//hire_date:时间数据

1.怎么获得今天是星期几,还关于其它日期函数用法
–可以用to_char来解决,如

select to_char(to_date('2019-03-26','yyyy-mm-dd'),'day') 
from dual; 

Oracle关于时间的操作
2.在获取之前可以设置日期语言,
如 :ALTER SESSION SET NLS_DATE_LANGUAGE=‘AMERICAN’;
–还可以在函数中指定

select to_char(to_date('2019-03-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') 
from dual; 

Oracle关于时间的操作
3.其它更多用法,可以参考to_char与to_date函数
–如获得完整的时间格式

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
 from dual; 

Oracle关于时间的操作
4.本月的天数

SELECT to_char(last_day(SYSDATE),'dd') days 
FROM dual 

Oracle关于时间的操作
5.今年的天数

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year')
 from dual 

Oracle关于时间的操作
6.下个星期一的日期

SELECT Next_day(SYSDATE,'monday')
 FROM dual 

Oracle关于时间的操作
7. --时间筛选

SELECT last_name, hire_date, department_id
FROM   employees
WHERE TO_CHAR(hire_date,'yyyy-mm-dd')='1987-09-17' 

Oracle关于时间的操作
8.时间添加字符

select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh:mi:ss')
from dual; 

Oracle关于时间的操作
9. 日期相减的天数

select last_name,sysdate,hire_date,(sysdate-hire_date)/365  as weeks from employees 
where last_name like 'G%';

Oracle关于时间的操作