日期函式(學習筆記)

2022-04-20 00:48:03 字數 3555 閱讀 5594

--********************日期函式

--獲取當前系統時間

select sysdate from dual;

獲取的是當前系統的時間

--查詢距離今天3天後,和3天前的日期

select

sysdate 今天,

sysdate-3

三天前,

sysdate+3

三天後

from dual;

--查詢出每個員工入職到今天的入職天數,以及十天前每個員工的入職天數

select

e.hiredate 入職日期,

sysdate 今天,

sysdate

-e.hiredate 入職到今天的天數,

sysdate-10

-e.hiredate 十天前的入職天數

from emp e;

--使用trunc擷取天數

select

e.hiredate 入職日期,

sysdate 今天,

trunc(sysdate

-e.hiredate) 入職到今天的天數,

trunc(sysdate-10

-e.hiredate) 十天前的入職天數

from emp e;

--months_between(日期1,日期2)求出2個日期之間的月數

--add_months(日期,數字) 求出在指定日期上加或者減指定的月數,數字,可以為正也可以為負

--next_day(日期,星期幾)求出下個星期的具體日期

--last_day(日期 )指定日期的最後一天的日期

--extract(格式 from 日期)將日期分豁,或者計算2個日期的間隔

--add_months(日期,數字)

select

sysdate 當前日期,

add_months(sysdate,

3) 三個月之後的日期,

add_months(sysdate,-3

) 三個月之前的日期,

add_months(sysdate,

60) 六十個月之後的日期

from dual;

--查詢所有員工在入職3個月後的日期

select e.empno,e.ename,e.hiredate,add_months(e.hiredate,3

)入職三個月的日期

from emp e;

--next_day(日期,星期幾)

select

sysdate 當前日期,

next_day(sysdate,

'星期五

') 下個星期五,

next_day(sysdate,

'星期一

') 下個星期一

from dual;

--last_day()乙個月的最後一天日期

select sysdate,last_day(sysdate) from dual;

獲取當前月的最後一天日期

--查詢所有在入職日期在當月最後第三天入職的員工,最後一天-2

select

e.empno,e.ename,e.hiredate

from

emp e

where e.hiredate=last_day(e.hiredate)-

2;

--months_between

--查詢每個員工的編號,姓名,入職日期,入職的月數和年份

--月數months_between(sysdate,hiredate)年數months_between(sysdate,hiredate)/12

select

e.empno,e.ename,e.hiredate,

trunc(months_between(sysdate,e.hiredate)) 入職的月數,

trunc(months_between(sysdate,e.hiredate)/12

) 入職的年數

from emp e;

--查詢每個員工的編號,姓名,入職日期,已經入職的年份,月份和天數

--總月數,和12求模就是月數

--日用當前日期-(入職日期+月數)

select

e.empno,e.ename,e.hiredate,

trunc(months_between(sysdate,e.hiredate)/12

) 年,

trunc(mod(months_between(sysdate,e.hiredate),

12)) 月,

trunc(sysdate

-add_months(e.hiredate,months_between(sysdate,e.hiredate))) 日

from emp e;

--extract函式

select

sysdate,

extract(

year

from

sysdate)年,

extract(

month

from

sysdate) 月,

extract(

dayfrom

sysdate) 日

from dual;

--從時間戳中取出年,月,日,時,分,秒

select

systimestamp,

extract(

year

from

systimestamp)年,

extract(

month

from

systimestamp) 月,

extract(

dayfrom

systimestamp) 日,

extract(hour

from

systimestamp) 時,

extract(minute

from

systimestamp) 分,

extract(second

from

systimestamp) 秒

from dual;

日期函式(學習筆記)

日期函式 獲取當前系統時間 select sysdate from dual 獲取的是當前系統的時間 查詢距離今天3天後,和3天前的日期 select sysdate 今天,sysdate 3 三天前,sysdate 3 三天後 from dual 查詢出每個員工入職到今天的入職天數,以及十天前每個...

Hive日期時間函式學習

1 日期字串與unixtime互轉 日期函式unix時間戳轉日期函式 from unixtime 語法 from unixtime bigint unixtime string format 返回值 string 說明 轉化unix時間戳 從1970 01 01 00 00 00 utc到指定時間的...

oracle 日期函式學習一

時間和日期處理函式 檢索年份是2007的所有 prod end資料 select from products where to number to char prod end,yyyy 2007 select from products where prod end between to date ...