第4章 单行函数

 

 

 

大小写控制函数

LOWER('SQL Course')

UPPER('SQL Course')

INITCAP('SQL Course')

显示员工 Higgins的信息:

SELECT employee_id, last_name, department_id

FROM   employees

WHERE  last_name = 'higgins';

no rows selected

SELECT employee_id, last_name, department_id

FROM   employees

WHERE  LOWER(last_name) = 'higgins';

字符控制函数

1.CONCAT('Hello', 'World')

2.SUBSTR('HelloWorld',1,5)

3.LENGTH('HelloWorld')

4.INSTR('HelloWorld', 'W')

5.LPAD(salary,10,'*')

6.RPAD(salary, 10, '*')

7.TRIM('H' FROM 'HelloWorld')

结果如下:

1.HelloWorld

2.Hello

3.10

4.6

5.*****24000

6.24000*****

7.elloWorld

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: 四舍五入

ROUND(45.926, 2)  →45.93

•TRUNC:  截断

TRUNC(45.926, 2)   →45.92

•MOD: 求余

MOD(1600, 300)    →100

ROUND函数

SELECT ROUND(45.923,2), ROUND(45.923,0),

       ROUND(45.923,-1)

FROM   DUAL;

DUAL 是一个‘伪表’,可以用来测试函数和表达式

日期的数学运算

•在日期上加上或减去一个数字结果仍为日期。
•两个日期相减返回日期之间相差的天数。
•可以用数字除24来向日期中加上或减去小时。

SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS

FROM   employees

WHERE  department_id = 90;

 

select sysdate,sysdate - interval '7' MINUTE from dual

当前时间减去 7 小时的时间

select sysdate - interval '7' hour from dual

当前时间减去 7 天的时间

select sysdate - interval '7' day from dual

当前时间减去 7 月的时间

select sysdate,sysdate - interval '7' month from dual

当前时间减去 7 年的时间

select sysdate,sysdate - interval '7' year from dual

时间间隔乘以一个数字

select sysdate,sysdate - 8 *interval '2' hour from dual

Assume SYSDATE = '25-JUL-95':
•ROUND(SYSDATE,'MONTH')         01-AUG-95
•ROUND(SYSDATE ,'YEAR')         01-JAN-96
•TRUNC(SYSDATE ,'MONTH')        01-JUL-95
•TRUNC(SYSDATE ,'YEAR')         01-JAN-95

转换函数

隐式数据类型转换

Oracle 自动完成下列转换:

显式数据类型转换

TO_CHAR 函数对日期的转换

格式:

§必须包含在单引号中而且大小写敏感。
§可以包含任意的有效的日期格式。
§可以使用 fm 去掉多余的空格或者前导零。
§与日期指用逗号隔开。

日期格式元素

时间格式

HH24:MI:SS AM 15:45:32 PM
当前时间减去 7 分钟的时间

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual

select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual


TO_CHAR 函数对数字的转换

下面是在TO_CHAR 函数中经常使用的几种格式:

SELECT TO_CHAR(salary, '$99,999.00') SALARY

FROM   employees

WHERE  last_name = 'Ernst';

字符到日期操作
select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual

TO_NUMBER 使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[, '格式'])
oracle有毫秒级的数据类型 --返回当前时间 年月日小时分秒毫秒
select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual;
--返回当前时间的秒毫秒,可以指定秒后面的精度(最大=9)
select to_char(current_timestamp(9),’MI:SSxFF’) from dual;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值