首页 > 代码库 > Oracle记录学习

Oracle记录学习

--基本函数
--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记录学习