oracle日期用.来隔开,Oracle基础笔记三

第三章 单行函数

Oracle基础笔记二1.单行函数:

操作数据对象

接受参数返回一个结果

只对一行进行变换

每行返回一个结果

可以转换数据类型

可以嵌套

参数可以是一列或一个值

2.大小写控制函数:

LOWER('SQL Course')sql course

UPPER('SQL Course')SQL COURSE

INITCAP('SQL Course')Sql Course

3.字符控制函数:

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

4.数字函数:

ROUND: 四舍五入

ROUND(45.926, 2)45.93

TRUNC: 截断

TRUNC(45.926, 2)45.92

MOD: 求余

MOD(1600, 300)                 100

5.日期:

Oracle 中的日期型数据实际含有两个值: 日期和时间。

函数SYSDATE 返回:日期  时间

日期的数学运算:

①在日期上加上或减去一个数字结果仍为日期。

②两个日期相减返回日期之间相差的天数。

日期不允许做加法运算,无意义

③可以用数字除24来向日期中加上或减去天数。

6.日期函数:

MONTHS_BETWEEN两个日期相差的月数

ADD_MONTHS向指定日期中加上若干月数

NEXT_DAY指定日期的下一个星期 * 对应的日期

LAST_DAY本月的最后一天

ROUND日期四舍五入

TRUNC 日期截断

例如:

MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')-------->19.6774194

ADD_MONTHS ('11-JAN-94',6)              -------->'11-JUL-94'

NEXT_DAY ('01-SEP-95','FRIDAY')         -------->'08-SEP-95'

LAST_DAY('01-FEB-95')                   -------->'28-FEB-95'

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

7.隐式数据类型转换:自动

显式数据类型转换:

①TO_CHAR函数对日期的转换:

TO_CHAR(date, 'format_model')

格式:

必须包含在单引号中而且大小写敏感。

可以包含任意的有效的日期格式。

日期之间用逗号隔开。

SELECT TO_CHAR(sysdate,‘yyyy-mm-dd hh:mi:ss’) FROM dual;

时间格式:  HH24:MI:SS AM

使用双引号向日期中添加字符   DD "of" MONTH

②TO_DATE 函数对字符的转换:

使用 TO_DATE :

TO_DATE(char[,'format_model'])

使用 TO_DATE 函数将字符转换成数字:

TO_DATE('2012年10月29日081021','yyyy"年"mm"月"dd"日"hh:mi:ss)

from dual

③TO_CHAR函数对数字的转换:

TO_CHAR(number, 'format_model')

例如:

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

FROM   employees

WHERE  last_name = 'Ernst';

④TO_NUMBER 函数对字符的转换 :

使用 TO_NUMBER 函数将字符转换成日期:TO_NUMBER(char[, 'format_model'])

使用 TO_NUMBER :TO_NUMBER(‘¥1,234,567,890.00’,’L999,999,999,999.99’)

from dual

8.通用函数:

这些函数适用于任何数据类型,同时也适用于空值:

①NVL (expr1, expr2)

将空值转换成一个已知的值:

可以使用的数据类型有日期、字符、数字。

函数的一般形式:

NVL(commission_pct,0)

NVL(hire_date,'01-JAN-97')

NVL(job_id,'No Job Yet')

②NVL2 (expr1, expr2, expr3) : expr1不为NULL,返回expr2;为NULL,返回expr3。

③NULLIF (expr1, expr2) :  相等返回NULL,不等返回expr1

④COALESCE (expr1, expr2, ..., exprn)

COALESCE 与 NVL 相比的优点在于 COALESCE 可以同时处理交替的多个值。

如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE 。

9.条件表达式:

在 SQL 语句中使用IF-THEN-ELSE 逻辑

使用两种方法:

CASE 表达式:

CASE expr WHEN comparison_expr1 THEN return_expr1

[WHEN comparison_expr2 THEN return_expr2

WHEN comparison_exprn THEN return_exprn

ELSE else_expr]

END

DECODE 函数:

DECODE(col|expression, search1, result1 ,

[, search2, result2,...,]

[, default])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值