alter session set NLS_DATE_FORMAT='yyyymidd';
select last_name, hire_date from employees where
to_char(hire_date, 'yyyymmdd')
between '19980201' and '19980701'
/
nachteil JEDE zeile mu� konvertiert werden
select last_name, hire_date from employees where
hire_date
between to_date('19980201', 'yyyymmdd') and to_date('19980701', 'yyyymmdd')
/
select * from (
select first_name, last_name, hire_date, trunc(months_between( sysdate, hire_date)) asd from employees
)
where asd >=120
order by hire_date
Zahl der Tage pro Monat, ACHTUNG das trunc von last_day liefert Mitternacht des letzen Tages, also dauert der Monat dann noch 24h!
select (trunc(last_day(sysdate))+1 - trunc(sysdate, 'month')) from dual;
select add_months(to_date('20090131', 'yyyymmdd'), 1) from dual;
select to_date('15821004', 'yyyymmdd') + 1 from dual;
select to_char(sysdate, 'yyyymmdd hh24miss') from dual;
select sysdate from dual;
select first_name,
last_name
-- to_char(hire_date, 'yyyymmdd')
from employees
where to_char(hire_date, 'yyyy') BETWEEN 1995 and 1997
order by hire_date
;
alter session set NLS_DATE_FORMAT='yyyymmdd'
select first_name,
last_name,
to_char(hire_date, 'yyyymmdd')
from employees
where hire_date
BETWEEN to_date('19950101','yyyymmdd') and to_date('19980101','yyyymmdd')
order by hire_date
;
select first_name,
last_name,
trunc(sysdate - hire_date) tage
from employees
order by hire_date
;
select to_char(to_date('2010', 'yyyy'), 'yyyymmdd hh24mi') from dual
select sysdate-1/24 from dual;
select extract(month from sysdate) from dual
select first_name,
last_name,
to_char(hire_date, 'yyyymmdd')
from employees
where extract(year from hire_date)
BETWEEN 1995 and 1997
order by hire_date
;