【350天】我愛刷題系列109(2018.01.21)

叨叨兩句

  1. ~

SQL習題004

下題環境:【Oracle-HR用戶】code

1

選擇僱用時間在1998-02-01到1998-05-01之間的員工姓名,job_id和僱用時間字符串

select first_name,last_name,job_id,hire_date
from employees
where 
hire_date between to_date('1998-02-01','yyyy-mm-dd') 
and to_date('1998-05-01','yyyy-mm-dd');

2

選擇在1994年僱用的員工的姓名和僱用時間
法1ast

select last_name,hire_date from hr.employees 
where hire_date between to_date('1994-1-1','yyyy-mm-dd') and to_date('1994-12-31','yyyy-mm-dd');

法2date

select first_name,last_name,hire_date
from employees
where 
to_char(hire_date,'yyyy-mm-dd')like'1994%' ;

select first_name,last_name,hire_date
from employees
where 
to_char(hire_date,'yyyymmdd')like'1994%';

法3select

select first_name,last_name,hire_date
from employees
where 
hire_date like '%94';

Like 只能用於字符串序列, 所以你的 hire_date like 條件Oracle會隱式把 hire_date 進行 to_char 轉換, 而且使用系統默認的日期格式, 所以你須要知道系統默認的日期格式纔能有效的使用 like 篩選.

一般咱們都不依賴於系統默認的日期格式(他一般是 DD-MON-RR )而是直接顯示指定日期格式, 好比: to_char(hire_date,'yyyy-mm-dd'), 系統默認的格式可能依不一樣語言的系統而有所不一樣.

3

顯示系統時間查詢

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

4

查詢員工的姓名,以及在公司工做的月份數(worked_month),並按月份數降序排列語言

select first_name,last_name,months_between(sysdate,hire_date) worked_month
from employees
order by worked_month desc;
相關文章
相關標籤/搜索