单行函数
- 操作数据对象
- 接受参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以转换数据类型
- 可以嵌套
- 参数可以是一列或一个值
function_name [(arg1, arg2,...)]

字符函数

大小写控制函数
这类函数改变字符的大小写。
函数 | 结果 |
---|
LOWER(‘SQL Course’) | SQL course |
UPPER(‘SQL Course’) | SQL course |
INITCAP(‘SQL Course’) | SQL course |
字符控制函数
这类函数控制字符:
函数 | 结果 |
---|
CONCAT(‘Hello’, ‘World’) | HelloWorld |
SUBSTR(‘HelloWorld’,1,5) | Hello |
LENGTH(‘HelloWorld’) | 10 |
INSTR(‘HelloWorld’, ‘W’) | 6 |
LPAD(salary, 10, ‘*’) | *****24000 |
RPAD(salary, 10, ‘*’) | 24000***** |
TRIM(‘H’ FROM ‘HelloWorld’) | elloWorld |
REPLACE(‘abcd’,’b’,’m’) | amcd |
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name),
INSTR(last_name, 'a') "Contains 'a'?"
FROM employees
WHERE SUBSTR(job_id, 4) = 'REP';
数字函数
函数 | 含义 | 结果 |
---|
ROUND(45.926, 2) | 四舍五入 | 45.93 |
TRUNC(45.926, 2) | 截断 | 45.92 |
MOD(1600, 300) | 求余 | 100 |
日 期
- Oracle 中的日期型数据实际含有两个值: 日期和时间。
- 函数SYSDATE 返回:
日期的数学运算
- 在日期上加上或减去一个数字结果仍为日期。
- 两个日期相减返回日期之间相差的天数。
- 可以用数字除24来向日期中加上或减去天数。
日期函数
函数 | 描述 |
---|
MONTHS_BETWEEN | 描述日期相差的月数 |
ADD_MONTHS | 向指定日期中加上若干月数 |
NEXT_DAY | 指定日期的下一个星期*对应的日期 |
LAST_DAY | 本月的最后一天 |
ROUND | 日期四舍五入 |
TRUNC | 日期截断 |
转换函数

隐式数据类型转换
Oracle 自动完成下列转换:
源数据类型 | 目标数据类型 |
---|
VARCHAR2 or CHAR | NUMBER |
VARCHAR2 or CHAR | DATE |
NUMBER | VARCHAR2 |
DATE | VARCHAR2 |
显式数据类型转换

TO_CHAR函数对日期的转换
TO_CHAR(date, ‘format_model’)
格式:
- 必须包含在单引号中而且大小写敏感。
- 可以包含任意的有效的日期格式。
- 日期之间用逗号隔开。
SELECT TO_CHAR(sysdate,‘yyyy-mm-dd hh:mi:ss’) FROM dual;
select employee_id,last_name,hire_date
from employees
where to_char(hire_date,’yyyy-mm-dd’) = ‘1987-09-17’
TO_DATE 函数对字符的转换