Oracle 3 日期操作

2021-08-21 20:29:31 字數 2546 閱讀 9475

1.oracle中的日期處理(乙個型別兩個函式)

日期的資料型別date,該型別可以包含日期時間

2.系統當前日期的獲取方式

select sysdate from dual;    --日期時間

3.日期與字串的轉換問題

(1)日期轉換成字串  to_char

select sysdate 標準顯示,

to_char(sysdate,'yyyy-mm-dd') 日期,

to_char(sysdate,'yyyy') 四位日期,

to_char(sysdate,'yy')   兩位日期,

to_char(sysdate,'mm')   月,

to_char(sysdate,'dd')   月第幾天,

to_char(sysdate,'ddd')  年第幾天,

to_char(sysdate,'d')    周第幾天,

to_char(sysdate,'hh')   小時12,--12小時進製

to_char(sysdate,'hh24') 小時24,--24小時進製

to_char(sysdate,'mi')   分,

to_char(sysdate,'ss')   秒,

to_char(sysdate,'hh24:mi:ss') 時分秒,

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') 時間戳

from dual;  

(2)字串轉換成日期  to_date

select to_date('2018-05-06','yyyy-mm-dd')+2

from dual;    --字串轉換日期

select to_date('2018-05-06 18:23:56','yyyy-mm-dd hh24:mi:ss')

from dual;    --字串轉換時間戳

(3)應用場景

to_char一般應用於select語句,用以將日期按照固定的格式查詢出來,顯示到頁面上

to_date應用場景有:

①在更新語句中(insert update)將指定字串轉換成日期錄入資料庫

②在查詢語句中where裡面,將指定的字串轉換成日期進行比較

(4)日期在資料庫中的儲存問題:

所有資料庫的日期型別,在資料庫中都是以常整數儲存的乙個,從標註日期(1970-01-01 00:00:00)到當前指定日期之間的毫秒差。

基於上述,日期比較實際上就是常整數之間的加減法,比較速度會快於字串比較。

4.日期的計算

(1)天數加減:

直接操作,日期是基於天數操作的

(2)月份加減:

oracle中對於日期的加減是通過乙個函式add_months(日期,數值)完成的

該函式會在當前日期的基礎上,增加或減少指定月數

--系統時間的次月同日

select add_months(sysdate,1)  下月同日,

add_months(sysdate,-1) 上月同日

from dual;

--指定日期的次月同日  

select add_months(to_date('2015-06-05','yyyy-mm-dd'),1)

from dual;

--指定日期不存在次月同日,以次月最後一日為同日

select add_months(to_date('2015-08-31','yyyy-mm-dd'),1)

from dual;

(3)時分秒操作

--加三個小時

select sysdate,sysdate+3/24

from dual;

--加10分鐘

select sysdate,sysdate+10/60/24

from dual;

--加30秒

select sysdate,sysdate+30/60/60/24

from dual;

5.日期修改操作

--將person表中的pdate修改為系統當前時間

update person a

set a.pdate=sysdate

where a.pid=3;

--將孫二娘的生日修改為1999-01-01

update person a

set a.pdate=to_date('1999-01-01','yyyy-mm-dd')

where a.pname='孫二娘';

--錄入系統當前日期

insert into person(pid,pname,pnumber,p***,pstate,pmoney,pdate)

values(18,'你真好','1000','1','1','11111',sysdate);

--錄入指定日期

insert into person(pid,pname,pnumber,p***,pstate,pmoney,pdate)

values(19,'當然了','1000','1','1','11111',to_date('1958-01-02','yyyy-mm-dd'));

Oracle命令(四) 日期函式

sysdate 輸出預設時間 日 月 年 select to char sysdate,yyyy mm dd hh24 mi ss from dual 按照指定格式輸出時間資訊 日期的運算 計算 入職時間,天,周,月,年 select ename,sysdate hiredate 天,sysdate...

Python3 日期相關

import datetime import time 獲取當前日期,格式化 date0 datetime.date.today strftime y m d h m s print date0 只有年月日 例如 20180927 00 00 00 date1 datetime.datetime.t...

oracle3種分頁總結

list 1.通過rowid來分頁 list select e.from emp e where rowid in select rid from select rownum rn,rid from select rowid rid,e.sal from emp e order by sal whe...