pl/sql对采用数字格式的日期进行日期的转换
Nov 12, 2016 am 09:28 AM--将用小数形式表示的 日期时间 转化为 天-小时-分钟-秒 的形式 function fmt_time (p_days in number) return varchar2 as l_days number; l_hours number; l_minutes number; l_seconds number; l_sign varchar2(1); l_returnvalue string_util_pkg.t_max_pl_varchar2; begin /* Purpose: get time formatted as days, hours, minutes, seconds Remarks: Who Date Description ------ ---------- ------------------------------------- MBR 18.12.2006 Created */ --通过传入的 日期获得相应的 各个单位数据 --整数部分为 天 l_days := nvl(trunc(p_days),0); --小数部分 *24 得到小时 l_hours := nvl(((p_days - l_days) * 24), 0); --获得的小时 数据的小数部分 *60 为分钟 l_minutes := nvl(((l_hours - trunc(l_hours))) * 60, 0); --同样的 将获得的 分钟的小数部分*60 为秒 l_seconds := nvl(((l_minutes - trunc(l_minutes))) * 60, 0); --判断日期正负 符号 if p_days < 0 then l_sign:='minus '; else l_sign:=''; end if; --将得到的数据 进行格式化 绝对值是为了进行必要的 去除正负号判定 --获得天的绝对值 l_days:=abs(l_days); --获得小时的绝对值 同时获得其整数部分 l_hours:=trunc(abs(l_hours)); --去取分钟的绝对值 然后四舍五入 l_minutes:=round(abs(l_minutes)); --去取秒的绝对值 然后四舍五入 l_seconds:=round(abs(l_seconds)); --如果分钟 为60 为什么会出现这种情况呢? 这是因为有了四舍五入和小数 不精确所致 if l_minutes = 60 then --则 让小时+1 同时分钟置空 l_hours:=l_hours + 1; l_minutes:=0; end if; --将得到的结果 进行格式化输出 --采用 天-》小时-》分钟的判断顺序 是为了 能够决定那个 字段木有值 if l_days > 0 then l_returnvalue:=string_util_pkg.get_str('%1 days, %2 hours, %3 minutes', l_days, l_hours, l_minutes); elsif l_hours > 0 then l_returnvalue:=string_util_pkg.get_str('%1 hours, %2 minutes, %3 seconds', l_hours, l_minutes, l_seconds); elsif l_minutes > 0 then l_returnvalue:=string_util_pkg.get_str('%1 minutes, %2 seconds', l_minutes, l_seconds); else l_returnvalue:=string_util_pkg.get_str('%1 seconds', l_seconds); end if; --加上 符号 l_returnvalue:=l_sign || l_returnvalue; return l_returnvalue; end fmt_time;

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
