Oracle常见函数(一)

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种的日期、字转换函数。常用的为以下两种:

  • to_char():把日期或数字转换为字符串
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
... ...
  • to_date():把字符串转换为日期类型
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、日期函数

  • add_months()
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
  • last_day()
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
  • months_between()
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;
第一个结果 第二个结果 第三个结果
0 2 -2
  • next_day
select
next_day(sysdate, '星期一') as 第一个结果,
next_day('18-9月-2013', '星期六') as 第二个结果
from dual;
第一个结果 第二个结果
2017/11/6 2013/9/21

1.2.2、字符函数函数

  • chr()
select chr(65), chr(97) from dual;
CHR(65) CHR(97)
A a
  • concat()
select concat('hello', ' world') from dual;
CONCAT('HELLO', ' WORLD')
hello world
  • initcap()
select initcap('HELLO, world') from dual;
INITCAP('HELLO, WORLD')
Hello, World
  • length()
select length('HELLLO, world') from dual;
LENGTH('HELLO, WORLD')
13
  • lower()
select lower('HELLO, world') from dual;
LOWER('HELLO, WORLD')
hello, world
  • upper()
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

你可能感兴趣的:(Oracle常见函数(一))