oracle知識點整理(四)
前言日期關鍵字
sysdate
systimestamp
日期函式
to_date
to_char
last_day
add_months
months_between
next_day
least/greatest
日期得計算
日期rr注意點
空值null
預設值插入null
修改null
null值的運算操作
空值函式
前言這一篇是最後的乙個過度篇幅,主要涉及日期和空值操作。
日期關鍵字
sysdate
返回當前系統時間date型別的值,精確到秒,其本質是乙個oracle的內部函式
預設格式為:dd-mon-rr
systimestamp
返回當前系統時間的時間戳型別的值,精確到毫秒,本質也是內部函式
日期函式
to_date
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
將日期按照指定格式轉為字串
to_char(sysdate,『yyyy-mm-dd hh24:mi:ss』)
與to_date()剛好相反,這兩個函式使用頻率都很高
last_day
返回給定日期所在月份最後一天的日期。
select last_day(sysdate) from dual
1add_months
返回給定日期加上指定月份的日期,為負數則減去指定月份。
add_months(sysdate,12) 表示一年後今天的日期
months_between
months_between(date1,date2)
返回給定日期的相差月份
next_day
next_day(date,i)
返回給定日期的第二天開始一周內的指定週幾的日期
i表示週幾,1-7分別表示週日、周一……週六
不是表示第二天
least/greatest
least(d1,d2)/greatest(d1,d2,d3)
求最小/最大值,引數可以多個,至少乙個。
除了日期外,常用的數字也可以比較大小。
日期得計算
日期可以與乙個數字進行加減法,相當於加上指定天數。
兩個日期相減即為相差得天數
日期rr注意點
日期得預設格式為:dd-mon-rr
這裡的rr和yy是不一樣的,它是關注世紀的,如果將字串轉為年的時候rr是關注世紀的。
如果使用者輸入的時間是98年,也就是rr為98,即user為98,當前年份是2023年,即sys為20,根據上表的結果可知使用者輸入的98轉為日期是上世紀的98年。
空值null
預設值資料庫表中的資料如果沒有值就都是null
不能用=判斷某個值是否為null
用 is null/is not null 作為判斷依據
如果欄位有非空約束即 not null 則無法將該字段的值設為null,新增,修改都無法操作
插入null
可以插入一條資料,將某個值設為null
分為隱式插入和顯示插入
隱式插入即為不寫該字段,他就會是預設值null
顯示插入即寫出該欄位,將該字段的值設為null
修改null
可以將一條資料的某乙個欄位的值改為null
例如:update a set gender=null where id=1
1null值的運算操作
null與任何數字運算的結果還是null
null與任何字串拼接還是原來的字串,表示什麼都沒做
空值函式
nvl(a,b)
當a為null時,函式返回b
當a不為null時,函式返回a
即,將空值替換為乙個非空的值。
linux c c 知識點整理 四
當實際長度不夠時,右對齊 如果字串或者整數的長度超過說明的場寬,則按其實際長度輸出 如果是浮點數,若整數部分超過了說明的整數字場寬,則按其實際長度輸出,若是小數部分超過了說明的小數字場寬,則按說明的寬度以四捨五入輸出。例如 printf d d d n a,b,c b,c 那麼將輸出才c,b,c這3...
C C 知識點整理四
斷言,是巨集,而非函式。assert 巨集的原型定義在 c c 中,其作用是如果它的條件返回錯誤,則終止程式執行。可以通過定義ndebug來關閉 assert,但是需要在源 的開頭,include之前。使用assert的缺點是,頻繁的呼叫會極大的影響程式的效能,增加額外的開銷。在函式開始處檢驗傳入引...
知識點整理
一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...