select initcap(ename) from emp; 该语句能够使 ename 列的首字母大写。
select concat('hello ','world') from dual; 该语句是hello 和 world 被连接起来 concat()
select ename, substr(ename,-2,2) from emp; 该语句呢,
这个substr(ename , -2 ,2 ) 我一直有个疑问 , 那就是 -2 意味着什么? 2 有起到什么作用? -2 的话表示从 ename 这一列中 取出后两个字符, 而2呢? 就是在用 -2 取出的这个字符串中 取出 头两个字符, 那么 如果语句是
select ename, substr(ename,-4,2) from emp; 呢?
会截取 ename 中的后四个字符, 然后2 呢 , 就是从这个字符串中取出前两位来显示 就OK 了!
round() 四舍五入
select round(213.432) from dual; 结果被四舍五入 成了 213
select round(123.456,2) from dual 看到没有这里加了2 表示要保留两位小数呢! 结果就是 123.46 呢
select trunc(345.678) from dual; 是不会保留小数位的呢! 345
还有一个取余的函数 select mod(10,3) from dual; 结果是1.
还有一些日期相关的函数,在日期处理中,加减日期是有一些规律的, 日期 - 天数 = 日期 ; 日期 + 天数 = 日期 ;
日期 - 日期 = 天数 .
select sysdate from dual; 这样可以求出当前的日期 为 25 2月 -10 即 2010年2月25号
select empno , ename , round((sysdate - hiredate)/7) from emp ; 这样能够求出当前日期和员工的出生日期相差了多少个星期呢!
select empno, ename, round(months_between(sysdate, hiredate)) from emp; 能够求出自 sysdate 开始 至 hiredate 之间相差的月数.
select add_months(sysdate , 4) from dual; 这个就是在当前的时间基础上增加四个月
select next_day(sysdate,'星期一') from dual; 能够求出下一个星期一 是在 几月几号.
select last_day(sysdate) from dual; 这个玩意能够求出 本月的最后一天是哪一号
select empno, ename, to_char(hiredate, 'yyyy') year , to_char(hiredate, 'mm') months , to_char(
hiredate, 'dd') from emp; to_char() 能够将 年 月 日 逐个地拆分出来.
select empno, ename, to_char(hiredate, 'yyyy-mm-dd') from emp; 可以将日期的显示方式 转换成 --- 1980-12-17
select to_number('123') + to_number('566') from dual; 这个to_number()是可以将字符创转换成数字的一种函数, 结果是689.