標籤:
--基本函數
--select name,count(id) from work_test group by name having count(id)>1
--select upper(name),t.*,lower(name),substr(name,1,5) from WORK_TEST t
--連表更新
/*update work_test set(price)=(select t.price from work_test t where t.price=80.00 and t.id=work_test.id)
where price=11.00*/
--拓展函數
--select concat(‘1234‘,‘2234‘) || ‘3234‘ from dual; --串連函數
--select INITCAP(‘workspak‘) from dual; --首字母大寫
--select replace(‘workspak‘,‘wo‘,‘ca‘) from dual; --Replace替換
--select instr(‘workspak‘,‘o‘,1) from dual; --類似charindex函數,非常NB
--select length(‘workspak‘) from dual; --字元數
--select lpad(‘*‘,8,‘workspak‘) from dual; --替換字元,從右邊開始到左
--select rpad(‘*‘,8,‘workspak‘) from dual; --替換字元,從左至右
--select rtrim(ltrim(‘ workspak ‘,‘ ‘),‘ ‘) from dual --去除字元
-- select trunc(123.8761,2) from dual; --取精度 -值為小數點前
--select mod(20,6) from dual; --取餘函數
--時間函數
-- select sysdate from dual; --目前時間
--select to_date(‘2014-09-15‘,‘yyyy/mm/dd hh24:mi:ss‘) from dual; --時間轉換
--select to_char(sysdate,‘yyyy/mm/dd‘) from dual; --字元轉換
--月份增減
--select add_months(sysdate,-2) from dual;
--月份計算
--select months_between(sysdate,add_months(sysdate,-2)) from dual;
--select TRUNC(sysdate,‘month‘) from dual;
--坑爹啊 有月 沒天?
--select add_days(sysdate,2) from dual
--目前時間的天數
--select sysdate-1 from dual;
--下星期的周一 周日是1 依次類推
--select next_day(sysdate,2) from dual;
--計算天數
--select floor(sysdate-to_date(‘2014/08/20‘,‘yyyy/MM/dd‘)) from dual;
--select sysdate-to_date(‘2014/08/20‘,‘yyyy/MM/dd‘) from dual;
--擷取目前時間
--select extract(year from systimestamp) year from dual; --年份
--月份
--select extract(month from systimestamp) month from dual
--天
--select extract(day from systimestamp) day from dual
--minute 分鐘 second 秒
--擷取時間
--年
--select extract(year from date ‘2014-09-15‘) from dual
--月份
--select extract(month from date‘2014-09-15‘) from dual;
--天數
--select extract(day from date ‘2014-09-15‘) from dual
--時間間隔
--年
--select floor(SYSDATE-TO_DATE(‘2013-09-15‘, ‘yyyy-mm-dd hh24:mi:ss‘))/365 from dual;\
--月 ceil 最大整數 floor最小整數
--select MONTHS_BETWEEN(SYSDATE, TO_DATE(‘2013-08-15‘, ‘yyyy-mm-dd hh24:mi:ss‘)) from dual
--天
--select FLOOR(SYSDATE-TO_DATE(‘2013-08-15‘, ‘yyyy-mm-dd hh24:mi:ss‘)) from dual
--時
--select FLOOR(to_number(SYSDATE-TO_DATE(‘2013-08-15‘, ‘yyyy-mm-dd hh24:mi:ss‘))*24) from dual
--分
--select FLOOR(to_number(SYSDATE-TO_DATE(‘2013-08-15‘, ‘yyyy-mm-dd hh24:mi:ss‘))*24*60) from dual
--秒
--select FLOOR(to_number(SYSDATE-TO_DATE(‘2013-08-15‘, ‘yyyy-mm-dd hh24:mi:ss‘))*24*60*60) from dual
--數字函數
--select round(66.889) from dual; --四捨五入
--select trunc(66.889) from dual --直接截斷
--select ceil(66.889) from dual --最大數
--select floor(66.889) from dual --最小數
--select to_number(to_char(sysdate,‘hh24‘)) from dual ;24小時制
--select sign(123), sign(-123) from dual; -- 正數1 負數-1
--字元函數
--select to_char(‘123354‘) from dual;--數字轉字串
--select to_char(sysdate,‘yyyy-mm-dd‘) from dual --時間轉字元
--其他函數
--select user from dual;
--select vsize(‘workspak‘) from dual;
Oracle記錄學習