日期函式
日期得計算
日期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,...