1、Oracle函数
1.1、常用的单行函数
运算符 |
说明 |
mod(y,x) |
返回y除以x的余数,如果x为0则返回y |
round(x,[,y]) |
四舍五入,y省略,四舍五入到整数位;y为负,责到小数点前y位,y为正,则到小数点后y为 |
trunc(x,[,y]) |
截取数字,如y省略,则截去x的小数部分;y为负,截取小数点前y位;为正,截取小数点后y为 |
1.2、日期
Oracle中,时间和日期是一起存储的,其数据类型是date或者timestamp。
- date可以存储年、月、日、时、分、秒
- timestamp除了以上还可以存储带小数的秒、时区
Oracle中,以7位数字格式来存放日期时间,其整数部分从公元前4712年1月1日开始。
默认的日期格式:dd-MM-yyyy(01-5月-2013)
1.2.1、日期函数
Oracle提供了4种的日期、字转换函数。常用的为以下两种:
select ename, to_char(hiredate,'YYYY-MM-DD') from scott.emp;
ENAME |
TO_CHAR(HIREDATE.'YYYY-MM-DD') |
SMITH |
1980-11-01 |
ALLEN |
1981-02-20 |
... |
... |
select to_date('2006-05-01','YYYY-MM-DD') from dual;
TO_DATE('2006-05-01'.'YYYY-MM-DD') |
2006/5/1 |
1.2.2、日期函数
select sysdate, add_months(sysdate,3), add_months(sysdate,-2) from dual;
SYSDATE |
ADD_MONTHS(SYSDATE,3) |
ADD_MONTHS(SYSDATE,-2) |
2017/11/2 星期四 9:35:24 |
2018/2/2 星期五 9:35:24 |
2017/9/2 星期六 9:35:24 |
select sysdate, last_day(sysdate), last_day(sysdate)+1 from dual;
SYSDATE |
LAST_DAY(SYSDATE) |
LAST_DAY(SYSDATE,)+1 |
2017/11/2 星期四 9:41:16 |
2017/11/30 星期四 9:41:16 |
2017/12/1 星期五 9:41:16 |
select
months_between('17-9月-2013', '17-9月-2013') as 第一个结果,
months_between('17-10月-2013', '17-8月-2013') as 第二个结果,
months_between('17-8月-2013', '17-10月-2013') as 第三个结果
from dual;
select
next_day(sysdate, '星期一') as 第一个结果,
next_day('18-9月-2013', '星期六') as 第二个结果
from dual;
第一个结果 |
第二个结果 |
2017/11/6 |
2013/9/21 |
1.2.2、字符函数函数
select chr(65), chr(97) from dual;
select concat('hello', ' world') from dual;
CONCAT('HELLO', ' WORLD') |
hello world |
select initcap('HELLO, world') from dual;
INITCAP('HELLO, WORLD') |
Hello, World |
select length('HELLLO, world') from dual;
LENGTH('HELLO, WORLD') |
13 |
select lower('HELLO, world') from dual;
LOWER('HELLO, WORLD') |
hello, world |
select upper('HELLO, world') from dual;
UPPER('HELLO, WORLD') |
HELLO, WORLD |
-
ltrim():ltrim(x,y)函数是按照y中的字符一个一个截掉x中的字符,并且是从左边开始执行的,只要遇到y中有的字符,x中的字符都会被截掉,知道在x的字符中遇到y中没有的字符为止函数命令才结束
select ltrim('109224323','109') from dual;
LTRIM('109224323','109') |
224323 |
select ltrim('1090009224323','109') from dual;
LTRIM('1090009224323','109') |
224323 |