Oracle日期操作函式

2021-10-05 23:29:17 字數 2808 閱讀 6441

四、日期環境變數

oracle採用date型別表示日期時間,這是乙個7位元組的固定寬度的資料型別,有7個屬性,包括:世紀、世紀中哪一年、月份、月中的哪一天、小時、分鐘和秒。本文中把date型別稱為日期時間型別,簡稱日期。

對程式語言來說,日期是用字串來顯示和書寫的,如果設定了nls_date_format環境變數,oracle可以自動的對日期和字串進行轉換,但是,程式設計師更多的是採用to_char和to_date兩個函式對日期和字串進行轉換。

to_char函式把日期轉換成字串,一般用於 select 和 from 之間的字段列表中的日期輸出,語法如下:

to_char

(日期,格式)

日期格式用字串來表達,格式控制標識如下,加粗顯示的是常用的格式:

d:一周中的星期幾。

day:天的名字,使用空格填充到9個字元。

dd:月中的第幾天。

ddd:年中的第幾天。

dy:天的簡寫名。

iw:iso標準的年中的第幾周。

iyyy:iso標準的四位年份。

yyyy:四位年份。

yyy,yy,y:年份的最後三位,兩位,一位。

hh:小時,按12小時計。

hh24:小時,按24小時計。

mi:分。

ss:秒。

mm:月。

mon:月份的簡寫。

month:月份的全名。

w:該月的第幾個星期。

ww:年中的第幾個星期。

舉例:

to_date函式把字串轉換成日期,一般用於insert、update和where之後的條件中的日期輸入,語法如下:

to_date

(字串表示的日期,格式)

日期格式用字串來表達,與to_char函式相同。

先建立乙個用於測試的表tt。

create table tt ( c1 date)

;

舉列:

在update語句中把字串轉換為日期。

在where條件中把字串轉換為日期。

oracle資料庫提供了多種對日期加減的計算方法。

為了方便日期的顯示,先設定好nls_date_format環境變數,這個環境變數的用法在本文的「四、日期環境變數」章節中介紹。

export nls_date_format=

"yyyy-mm-dd hh24:mi:ss"

可以在日期上進行加減乙個小數(單位是天)得到乙個新的時間。

1)取當前時間和一天後的時間。

2)取當前時間和一小時後的時間。

3)獲取當前時間和一秒後的時間。

對日期直接加減的方式不用於月的加減,因為每月的天數不一樣,例如2020-01-01,加上30天之後是2020-01-31,不是2020-02-01。如果希望把日期加上乙個完整的月(不論月的大小),可以用add_months函式。

last_day函式得到日期所屬月份最後一天的時間。

oracle還提供了其它的日期計算的函式,如months_between、next_day、numtodsinterval和numtoyminterval等,在我看來,這些函式很煩人,實在沒有意義,就不介紹了。

nls_date_format環境變數指定日期的輸入和輸入格式,如果字串的格式與nls_date_format指定的格式相同,oracle可以自動轉換,不需要to_char和to_date函式。

export nls_date_format=

"yyyy-mm-dd hh24:mi:ss"

export nls_date_format=

"yyyymmddhh24miss"

從上圖的執行結果看出,修改nls_date_format環境變數後,如果輸入的日期格式不符,oracle無法識別。

Oracle日期操作函式

四 日期環境變數 oracle採用date型別表示日期時間,這是乙個7位元組的固定寬度的資料型別,有7個屬性,包括 世紀 世紀中哪一年 月份 月中的哪一天 小時 分鐘和秒。本文中把date型別稱為日期時間型別,簡稱日期。對程式語言來說,日期是用字串來顯示和書寫的,如果設定了nls date form...

Oracle日期操作

今天星期幾 select to char sysdate,dy from dual select to char systimestamp,day from dual 今天是本週第幾天 select to char sysdate,d from dual select to char systime...

Oracle 日期操作

select trunc sysdate to char sysdate,d 7 2 from dual select trunc sysdate to char sysdate,d 1 from dual 列出上週星期一 星期天的時間 語句分析 sysdate 系統當前時間 to char sys...