Oracle TO YMINTERVAL 函式簡介

2021-06-19 20:53:03 字數 897 閱讀 3859

to_yminterval 這個函式名字可以拆分為   to ym interval

這樣就容易理解了. 

其實to_yminterval 函式是將1個string 型別的資料(char, nchar, varchar2, nvarchar2) 轉化為 年和月的   時間差型別.

什麼是時間差型別?  例如'02-08'  就表示某兩個時間差了 2年零 8個月.

舉個例子.

假如我們要計算2023年1月1月 過2年零8個月後的日期.

可以利用如下sql語句.

sql> select to_date('20110101','yyyymmdd') + to_yminterval('02-08') from dual;

to_date('

---------

01-sep-13

也可以看出, to_yminterval 返回的值是可以和日期變數做加減運算的.

但是to_yminteral函式可以用來求兩個日期之間的年月差嗎?

比如這樣的..

select to_yminterval(to_char(sysdate - to_date('2001-01-01','yyyy-mm-dd'))) from dual;

答案是否的, 因為oracle中兩個日期相減返回的值是天數,  而to_yminterval的引數要求格式必須是'xx-xx'.

折中的方法是使用months_between函式, 可以得出兩個日期之間的月份差..

比如:

select months_between(sysdate,to_date('2001-01-01','yyyy-mm-dd')) from dual;

strtok函式簡析

官方的strtok函式,用來通過分隔字元 不支援字串,傳入的串中每個字元單獨當分隔符,如下例子組合的如123會處理1而23會被跳過 返回分隔的串的首位址 比如呼叫strtok abc123def 123456 返回值是指向abc的指標 下次要獲得 def 需要呼叫strtok null,123456...

iOS main函式簡析

如同任何基於c的應用程式,程式啟動的主入口點為ios應用程式的main函式。在ios應用程式,main函式的作用是很少的。它的主要工作是控制uikit framework。因此,你在xcode中建立任何新的專案都配備了乙個預設的主函式。除了少數特例外,你永遠不應該改變這個函式的實現。1 import...

over partition by 開窗函式簡介

簡單舉例 select code,kpi type,plan value num,row number over partition by code,kpi type order by plan value num desc rowno from fs target yp kpi 分析 code,k...