Oracle中日期和空值操作

2021-10-06 18:46:00 字數 1930 閱讀 2482

日期函式

日期得計算

日期rr注意點

空值null

這一篇是最後的乙個過度篇幅,主要涉及日期和空值操作。

返回當前系統時間date型別的值,精確到秒,其本質是乙個oracle的內部函式

預設格式為:dd-mon-rr

返回當前系統時間的時間戳型別的值,精確到毫秒,本質也是內部函式

to_date(『2020-01-01 14:22:22』,『yyyy-mm-dd hh24:mi:ss』) 將字串按照指定格式轉為日期

如果是如下格式,即有不是數字、字母、符號,是不能轉換的,要用就得加雙引號,有時候有些符號都不可以,如果有這種問題,就將這些字元都加上雙引號

to_date(『2023年01月01日 14:22:22』,『yyyy年mm月dd日 hh24:mi:ss』)

改為to_date(『2023年01月01日 14:22:22』,『yyyy「年」mm「月」dd「日」 hh24:mi:ss』)

將日期按照指定格式轉為字串

to_char(sysdate,『yyyy-mm-dd hh24:mi:ss』)

與to_date()剛好相反,這兩個函式使用頻率都很高

返回給定日期所在月份最後一天的日期。

select last_day(sysdate)

from dual

返回給定日期加上指定月份的日期,為負數則減去指定月份。

add_months(sysdate,12) 表示一年後今天的日期

months_between(date1,date2)

返回給定日期的相差月份

next_day(date,i)

返回給定日期的第二天開始一周內的指定週幾的日期

i表示週幾,1-7分別表示週日、周一……週六

不是表示第二天

least(d1,d2)/greatest(d1,d2,d3)

求最小/最大值,引數可以多個,至少乙個。

除了日期外,常用的數字也可以比較大小。

日期可以與乙個數字進行加減法,相當於加上指定天數。

兩個日期相減即為相差得天數

日期得預設格式為:dd-mon-rr

這裡的rr和yy是不一樣的,它是關注世紀的,如果將字串轉為年的時候rr是關注世紀的。

如果使用者輸入的時間是98年,也就是rr為98,即user為98,當前年份是2023年,即sys為20,根據上表的結果可知使用者輸入的98轉為日期是上世紀的98年。

資料庫表中的資料如果沒有值就都是null

不能用=判斷某個值是否為null

用 is null/is not null 作為判斷依據

如果欄位有非空約束即 not null 則無法將該字段的值設為null,新增,修改都無法操作

可以插入一條資料,將某個值設為null

分為隱式插入和顯示插入

隱式插入即為不寫該字段,他就會是預設值null

顯示插入即寫出該欄位,將該字段的值設為null

可以將一條資料的某乙個欄位的值改為null

例如:

update a set gender=

null

where id=

1

null與任何數字運算的結果還是null

null與任何字串拼接還是原來的字串,表示什麼都沒做

nvl(a,b)

當a為null時,函式返回b

當a不為null時,函式返回a

即,將空值替換為乙個非空的值。

nvl2(a,b,c)

當a不為null時,返回b

當a為null時,返回c

該函式根據a是否為null來返回不同結果

Oracle中日期處理

獲取oracle詳細建表語句 select dbms metadata.get ddl table t test ddl from dual 查詢資料儲存結構,字元長度 select dump 漢字 lengthb 漢字 from dual trunc把乙個日期擷取,只取到年。資料庫只是把最後5個位...

oracle中日期轉換

oracle中,日期轉換函式有很多,常用命令如下 select to char sysdate,yyyy mm dd hh24 mi ss from dual 語法 to char x format 說明 將x按format格式轉換成字串。x可以是日期或者數字或時間戳,format是乙個規定了x採用...

sql中日期操作

1.看到乙個帖子,裡面日期操作函式挺多,方法技巧也挺好,學習了。declare s date select s 2012 01 01 定義開始日期 select cast datepart yy,dateadd dd,number,s as varchar 4 年 cast datepart mm,...