oracle 將天數 1 366 轉換為日期

2021-08-25 20:24:34 字數 1403 閱讀 1188

//在平時的應用中,我們很多地方都使用了日期函式to_date() //但是我們對日期函式的格式知道得很少,或者說我們根本就不會去研究它 //然而,知道日期格式是多麼的重要 //下面是乙個具體的應用: //有一張表,有年字段year,時期欄位type,期數term,如下 id year type term --------------------- 1 2010 r 1 2 2010 r 2 . . . . . . . . n 2010 r 365 //結果: id year type term ---------------------- 1 2010 r 2010-01-01 . . . . . . . . n 2010 r 2010-12-31 //分析: //這是將天數轉換為日期,我們平時接觸到的基本上都是字串的日期轉換為日期格式, //這還是將天數轉換為日期,確實有點困難; //不過,好在oracle人員在設計to_date函式時已經考慮到了這個問題, //所以我們不必要擔心,查詢一下to_date函式的format格式, //發現乙個format引數表示將在[1-366]區間的數轉換為日期的格式: //ddd day of year (1-366). //下面是具體的解法: with t as( select 1 id,'2000' year, 'r' type, 1 term from dual union all select 2,'2000', 'r', 58 from dual union all select 3,'2010', 'r', 59 from dual union all select 4,'2010', 'r', 60 from dual union all select 5,'2011', 'r', 128 from dual union all select 6,'2011', 'r', 129 from dual union all select 7,'2001', 'r', 130 from dual union all select 8,'2005', 'r', 365 from dual union all select 9,'2008', 'r', 366 from dual) select id, year, type, term, to_char(to_date(year||term,'yyyyddd'),'yyyy-mm-dd') ymd from t; id year type term ymd ---------- ---- ---- ---------- ---------- 1 2000 r 1 2000-01-01 2 2000 r 58 2000-02-27 3 2010 r 59 2010-02-28 4 2010 r 60 2010-03-01 5 2011 r 128 2011-05-08 6 2011 r 129 2011-05-09 7 2001 r 130 2001-05-10 8 2005 r 365 2005-12-31 9 2008 r 366 2008-12-31

原帖:oracel 閏年判斷:

oracle to_date:

oracle 常用函式5 轉換函式

1.chartorowid c1 字串轉為rowid select chartorowid aaaadeaabaaaazsaaa from dual c1 字串,這個字串其實是個rowid,完全符合rowid的格式才能轉為rowid 2.rowidtochar rowid rowid轉字串 sele...

ORACLE學習筆記系列(13)轉換函式

oracle學習筆記系列 13 轉換函式 轉換函式 oracle的型別轉換分為自動型別轉換和強制型別轉換。常用轉換函式 to char 轉換成字串型別 to date 轉換成日期型別 to number 轉換成數值型別 cast x as type 用於將x轉換為type所指定的相容資料庫型別。as...

20141011 轉換習題2

習題要求 依次鍵盤輸入每個人的名字,加年齡,之後彙總列印出來,之後求年齡和列印出來。需要將名字和年齡分別定義賦值。名字定義為引用型,string m1 console.readline 年齡則需要定義為值型 double n1 convert.todouble console.readline 因為...