-
函數(shù)的作用
1.方便數(shù)據(jù)的統(tǒng)計(jì)
2.處理查詢結(jié)果
函數(shù)分類
數(shù)值函數(shù)
字符函數(shù)
日期函數(shù)
轉(zhuǎn)換函數(shù)
查看全部 -
日期轉(zhuǎn)字符串:
TO_CHAR(date,fmt,params)
date 日期數(shù)據(jù)
fmt:轉(zhuǎn)換格式: YYYY-MM-DD HH24:MI:SS
params:轉(zhuǎn)換語言,通常省略
字符轉(zhuǎn)日期
TO_DATE(char,fmt,params)
數(shù)字轉(zhuǎn)字符串
TO_CHAR(number,fmt)
fmt格式:有以下取值:
9: 顯示數(shù)字并忽略前面的0
0:顯示數(shù)字,位數(shù)不足用0補(bǔ)齊
.或D:顯示小數(shù)點(diǎn)
,或G:顯示千位符
$:顯示美元符號(hào)
S:加上正負(fù)號(hào)
字符轉(zhuǎn)數(shù)字
TO_NUMBER(char, fmt)
fmt 和上面一樣,可以省略。
查看全部 -
系統(tǒng)時(shí)間
sysdate? 默認(rèn)格式? dd-MM-yy
日期操作
2.1 ADD_MONTHS(date,i)增加月份
2.2 NEXT_DAY(date,char)返回的是下周的哪一天,用char指定。根據(jù)中英文環(huán)境指定不同字符串。
2.3 LAST_DAY(date)返回所在月的最后一天
2.4 MONTHS_BETWEEN(date1, date2) 返回兩個(gè)日期的月份差,天數(shù)不同時(shí),返回的是一個(gè)小數(shù)。如果要得到兩個(gè)日期的天數(shù)差,直接對(duì)日期進(jìn)行相減計(jì)算。
2.5 EXTRACT(date FROM datetime) 截取日期的部分,date的取值有year month? day hour minutes seconds?
select extract(hour from timestamp '2015-10-1 17:25:13') from dual
查看全部 -
大小寫轉(zhuǎn)換
UPPER? 大寫轉(zhuǎn)換
LOWER(n) 小寫轉(zhuǎn)換
INITCAP(n) 首字母大寫
獲取子串
SUBSTR(char,【m】,【n】)
m表示起始位置: 默認(rèn)為0,可以為負(fù)數(shù),表示從尾部截取
n表示截取長(zhǎng)度:默認(rèn)到字符串末端。
獲取字符串長(zhǎng)度
length(char)
字符串連接函數(shù)
CONCAT (char1, char2) 與操作符 || 效果是一樣的。
去除子串函數(shù)
TRIM (char? FROM str) 從str去除一個(gè)char字符
LTRIM (str, char)從str中去除char,從頭部開始只去除一次,非全局去除
RTRIM(str, char)從str中去除char,從右邊開始只去除一次,非全局去除
TRIM(str)去除前后空格
替換函數(shù)
REPLACE(STR, TSTR, RSTR)
將原字符串STR中的TSTR替換為RSTR。
查看全部 -
四舍五入函數(shù):
ROUND(n, [,m])
n 需要進(jìn)行四舍五入的字段
默認(rèn) m = 0
m > 0表示小數(shù)點(diǎn)后m位
m < 0表示小數(shù)點(diǎn)前m位
取整函數(shù):
SEIL(n) 向上取整 (向大的方向取整)
FLOOT(n) 向下取整 (向小的方向取整)
絕對(duì)值函數(shù)? abs(n)
取余函數(shù)? mod(n,m)
冪指函數(shù)? POWER(n,m)
平方根函數(shù)? SQRT(n)
三角函數(shù)? SIN(n)? ASIN(n)? COS(n) ACOS(n)? TAN(n)? ATAN(n)? 注意n指的是弧度,不是角度
查看全部 -
?在員工信息表查詢出員工的生日
根據(jù)身份證號(hào)碼得到員工的生日
select substr(cardid,7,8)from users;
將部門號(hào)01全部替換成信息技術(shù)
select replace(deptno,01,'信息極速') from users;
將員工信息表中年齡字段與10取余數(shù)
select mod(age,10)from users;
在查詢中使用日期函數(shù)
select extract(year from redate) from users;查詢出5月份入職的員工信息
select * from? users where extract(month from redate ) = 5;查看全部 -
轉(zhuǎn)換函數(shù)
日期轉(zhuǎn)換成字符的函數(shù):to-char(date[,fmt[,params]])【date--將要轉(zhuǎn)換的日期,fmt--轉(zhuǎn)換成的格式,params--日期的語言(此參數(shù)通常不寫)】
日期默認(rèn)格式:dd-mon-rr
fmt格式定義:yy【兩位的年】 yyyy【四位的年】 year【表示成英文形式】
mm【兩位的月份】 month【表示英文的月份】
dd【兩位的天數(shù)】 day【表示英文的日】
hh24【二十四小時(shí)制】 hh12【十二小時(shí)制】
mi【分鐘】 ss【秒】
例子:
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-03-26 15:04:33
SQL> select to_char(sysdate,'yy-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'
-----------------
19-03-26 03:05:31
SQL> select to_char(sysdate,'year-month-day hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MONTH-DAYHH12:MI:SS')
--------------------------------------------------------------------
twenty nineteen-3月 -星期二 03:07:23
TO_CHAR(SYSDATE,'YEAR-MM-DAYHH12:MI:SS')
----------------------------------------------------------------
twenty nineteen-03-星期二 03:09:00
SQL> select to_char(sysdate,'year-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DDHH12:MI:SS')
---------------------------------------------------------
twenty nineteen-03-26 03:09:29
字符轉(zhuǎn)換為日期的函數(shù):to_date(date[,fmt[,params]])【to_date()按照系統(tǒng)默認(rèn)格式顯示日期】 下例:
SQL> select to_date('2019-3-26','yyyy-mm-dd') from dual;
TO_DATE('2019-
--------------
26-3月 -19
數(shù)字轉(zhuǎn)換為字符的函數(shù):to_char(number[,fmt])
9:顯示數(shù)字并忽視前面的0
0:顯示數(shù)字,位數(shù)不足用0補(bǔ)齊
.或D:顯示小數(shù)點(diǎn)
,或G:顯示千位符
$:美元符號(hào)
S:加正負(fù)號(hào)(前后都可以,但不能同時(shí)加在前后)
SQL> select to_char(12345.678,'$99999.999') from dual;
TO_CHAR(123
-----------
?$12345.678
SQL> select to_char(12345.678,'$99,999.999') from dual;
TO_CHAR(1234
------------
?$12,345.678
SQL> select to_char(12345.678,'$99,999,999') from dual;
TO_CHAR(1234
------------
? ? ?$12,346
SQL> select to_char(12345.678,'$s99,999,999') from dual;
select to_char(12345.678,'$s99,999,999') from dual
? ? ? ? ? ? ? ? ? ? ? ? ?*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01481: 無效的數(shù)字格式模型
SQL> select to_char(12345.678,'s99,999,999') from dual;
TO_CHAR(123
-----------
? ? +12,346
字符轉(zhuǎn)換成數(shù)字的函數(shù):to_number(char[,fmt])
SQL> select to_number('$1000','9999') from dual;
select to_number('$1000','9999') from dual
? ? ? ? ? ? ? ? ?*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01722: 無效數(shù)字
SQL> select to_number('$1000','$9999') from dual;
TO_NUMBER('$1000','$9999')
--------------------------
? ? ? ? ? ? ? ? ? ? ? 1000
查看全部 -
獲取系統(tǒng)時(shí)間函數(shù):sysdate,默認(rèn)格式DD-MON-RR(日-月-年),下例:
SQL> select sysdate from dual;
SYSDATE
--------------
26-3月 -19
日期操作:add_months(date.i),函數(shù)作用是返回在指定日期上添加的月份【i可以是任何數(shù),若是小數(shù)則截取整數(shù),若是負(fù)數(shù),則相當(dāng)于在原來的日期上剪去相應(yīng)月份】
SQL> select add_months(sysdate,3),add_months(sysdate,-3),add_months(sysdate,0.5) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- -------------- --------------
26-6月 -19? ? ?26-12月-18? ? ?26-3月 -19
SQL> select add_months(sysdate,3),add_months(sysdate,-3),add_months(sysdate,1.5) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- -------------- --------------
26-6月 -19? ? ?26-12月-18? ? ?26-4月 -19
函數(shù)next_day(date,char):如果char的值是“星期一”,則返回date指定日期的下一個(gè)星期一是哪天。
函數(shù)last_day(date):返回月最后一天是幾號(hào)。
函數(shù)month_between(date1,date2):返回兩個(gè)日期之間相隔的月份。下例:
SQL> select months_between('26-3月-19','10-1月-19')from dual;
MONTHS_BETWEEN('26-3月-19','10-1月-19')
---------------------------------------
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.51612903
函數(shù)extract(date from datetime):獲取當(dāng)前時(shí)間的年或月或日,下例:
SQL> select extract(year from sysdate)from dual;
EXTRACT(YEARFROMSYSDATE)
------------------------
? ? ? ? ? ? ? ? ? ? 2019
sysdate可以表示時(shí)間類型,再看一個(gè)例子:
SQL> select extract(hour from timestamp '2019-3-26 13:35:26') from dual;
EXTRACT(HOURFROMTIMESTAMP'2019-3-2613:35:26')
---------------------------------------------
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?13
查看全部 -
字符函數(shù):
1、大小寫轉(zhuǎn)換函數(shù)(變?yōu)榇髮憉pper('abc')、變?yōu)樾憀ower('SDD')、首寫字母變?yōu)榇髮慽nitcap('abs'))
2、獲取子字符串函數(shù)(substr(char,[m[,n]])m若是整數(shù)即從頭開始算,m若是負(fù)數(shù)即從尾開始算 n可以省略 表示? 從m到末尾
m=0 從字符串的首字母開始截取
m=負(fù)數(shù)? 表示 從字符串的尾部開始截取
3、獲取字符串長(zhǎng)度函數(shù)(length(" abc"),空格也算一個(gè)字符數(shù))
4、字符串連接函數(shù)(concat('ab','cd')? ?'ab'||'cd')
5、去除字串函數(shù)(trim('a' from 'abcd')從字符串中去除一個(gè)字符,ltrim('abc','a')從字符串左邊去除指定字符,rtrim('abcaa','a')從字符串右邊去除指定字符,trim(' abc')去除字符串中首位空格)
6、替換函數(shù)(replace('abcde','ab','A')若最后'A'字符省略,就會(huì)被刪除)
查看全部 -
數(shù)值函數(shù):四舍五入round(n,[m])
【n表示要進(jìn)行四舍五入的值,m表示保留小數(shù)點(diǎn)后幾位或前幾位】
省略m:0(即取整)
m>0:小數(shù)點(diǎn)后面m位
m<0:小數(shù)點(diǎn)前面m位
dual 目標(biāo)表
取整:
CEIL(n):取整時(shí)取最大值(上限)
FLOOR(n):取整時(shí)取最小值(下限)
常用計(jì)算:
ABS(n):取絕對(duì)值
MOD(m,n):取余【m代表除數(shù),n代表被除數(shù),m、n中任意一個(gè)為null值,結(jié)果返回null】
POWER(m,n):返回m的n次冪
sqrt(n):開平方
三角函數(shù):
正弦 SIN(n)、反正弦 ASIN(n)
COS(n)、ACOS(n)
TAN(n)、ATAN(n)
例:SQL> select ceil(23.45),floor(23.45) from dual;
、取整函數(shù)(ceil(n)取最大整數(shù)、floor(n)取最小整數(shù))、常用計(jì)算(絕對(duì)值abs(n)、取余數(shù)mod(m,n)、求平方power(m,n))、求平方根sqrt(n)、三角函數(shù)正弦sin(n)、反正弦asin(n)、余弦cos(n)、反余弦acos(n)、正切tan(n)、反正切atan(n))
查看全部 -
字符函數(shù):
1、大小寫轉(zhuǎn)換函數(shù)(變?yōu)榇髮憉pper('abc')、變?yōu)樾憀ower('SDD')、首寫字母變?yōu)榇髮慽nitcap('abs'))
2、獲取子字符串函數(shù)(substr('abced',m,n))m若是整數(shù)即從頭開始算,m若是負(fù)數(shù)即從尾開始算
3、獲取字符串長(zhǎng)度函數(shù)(length(" abc"),空格也算一個(gè)字符數(shù))
4、字符串連接函數(shù)(concat('ab','cd')? ?'ab'||'cd')
5、去除字串函數(shù)(trim('a' from 'abcd')從字符串中去除一個(gè)字符,ltrim('abc','a')從字符串左邊去除指定字符,rtrim('abcaa','a')從字符串右邊去除指定字符,trim(' abc')去除字符串中首位空格)
6、替換函數(shù)(replace('abcde','ab','A')若最后'A'字符省略,就會(huì)被刪除)
查看全部 -
數(shù)值函數(shù):四舍五入(round(n,m))、取整函數(shù)(ceil(n)取最大整數(shù)、floor(n)取最小整數(shù))、常用計(jì)算(絕對(duì)值abs(n)、取余數(shù)mod(m,n)、求平方power(m,n))、求平方根sqrt(n)、三角函數(shù)正弦sin(n)、反正弦asin(n)、余弦cos(n)、反余弦acos(n)、正切tan(n)、反正切atan(n))
m>0小數(shù)點(diǎn)前m位,四舍五入
m<0小數(shù)點(diǎn)后m位,四舍五入
查看全部 -
函數(shù)胡作用:方便數(shù)據(jù)胡統(tǒng)計(jì)、處理查詢結(jié)果(身份證年月日)
數(shù)值函數(shù):四舍五入、求和
字符函數(shù):大小寫轉(zhuǎn)換
日期函數(shù):獲取當(dāng)前時(shí)間、查詢時(shí)間間隔
轉(zhuǎn)換函數(shù):字符、數(shù)值、日期之間轉(zhuǎn)換
查看全部 -
課程總結(jié)
數(shù)值函數(shù)
四舍五入:round(n[,m])
取整:floor(n)
絕對(duì)值:abs(n)
取余數(shù):mod(m,n)
平方根:sqrt(n)
三角函數(shù):sin(n)、asin(n)等
字符函數(shù)
大小寫轉(zhuǎn)換:upper(char)、lower(char)
字符串連接:concat(char1,char2)
獲取子字符串:substr(char,[m[,n]])
獲取字符串長(zhǎng)度:length(char)
日期函數(shù)
獲取當(dāng)前時(shí)間:
sysdate 系統(tǒng)時(shí)間
ADD_MONTHS(date,i)加或減掉i個(gè)月后日期
LAST_DAY(date)得到月最后一天
month——between(date1,date2) 兩個(gè)日期間月份差,結(jié)果含有小數(shù)
extract(date from datetime) 提取指定日期的某部分,如年、月、日。
轉(zhuǎn)換函數(shù)
to_char(date[,fmt[,params]]) 日期類型轉(zhuǎn)字符類型
to_char(numbe[,fmt])? 數(shù)值轉(zhuǎn)字符
to_number(char[,fmt]) 字符轉(zhuǎn)數(shù)值
查看全部 -
轉(zhuǎn)換函數(shù)
日期轉(zhuǎn)換成字符的函數(shù):to-char(date[,fmt[,params]])【date--將要轉(zhuǎn)換的日期,fmt--轉(zhuǎn)換成的格式,params--日期的語言(此參數(shù)通常不寫)】
日期默認(rèn)格式:dd-mon-rr
fmt格式定義:yy【兩位的年】 yyyy【四位的年】 year【表示成英文形式】
mm【兩位的月份】 month【表示英文的月份】
dd【兩位的天數(shù)】 day【表示英文的日】
hh24【二十四小時(shí)制】 hh12【十二小時(shí)制】
mi【分鐘】 ss【秒】
例子:
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-03-26 15:04:33
SQL> select to_char(sysdate,'yy-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'
-----------------
19-03-26 03:05:31
SQL> select to_char(sysdate,'year-month-day hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MONTH-DAYHH12:MI:SS')
--------------------------------------------------------------------
twenty nineteen-3月 -星期二 03:07:23
TO_CHAR(SYSDATE,'YEAR-MM-DAYHH12:MI:SS')
----------------------------------------------------------------
twenty nineteen-03-星期二 03:09:00
SQL> select to_char(sysdate,'year-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DDHH12:MI:SS')
---------------------------------------------------------
twenty nineteen-03-26 03:09:29
字符轉(zhuǎn)換為日期的函數(shù):to_date(date[,fmt[,params]])【to_date()按照系統(tǒng)默認(rèn)格式顯示日期】 下例:
SQL> select to_date('2019-3-26','yyyy-mm-dd') from dual;
TO_DATE('2019-
--------------
26-3月 -19
數(shù)字轉(zhuǎn)換為字符的函數(shù):to_char(number[,fmt])
9:顯示數(shù)字并忽視前面的0
0:顯示數(shù)字,位數(shù)不足用0補(bǔ)齊
.或D:顯示小數(shù)點(diǎn)
,或G:顯示千位符
$:美元符號(hào)
S:加正負(fù)號(hào)(前后都可以,但不能同時(shí)加在前后)
SQL> select to_char(12345.678,'$99999.999') from dual;
TO_CHAR(123
-----------
?$12345.678
SQL> select to_char(12345.678,'$99,999.999') from dual;
TO_CHAR(1234
------------
?$12,345.678
SQL> select to_char(12345.678,'$99,999,999') from dual;
TO_CHAR(1234
------------
? ? ?$12,346
SQL> select to_char(12345.678,'$s99,999,999') from dual;
select to_char(12345.678,'$s99,999,999') from dual
? ? ? ? ? ? ? ? ? ? ? ? ?*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01481: 無效的數(shù)字格式模型
SQL> select to_char(12345.678,'s99,999,999') from dual;
TO_CHAR(123
-----------
? ? +12,346
字符轉(zhuǎn)換成數(shù)字的函數(shù):to_number(char[,fmt])
SQL> select to_number('$1000','9999') from dual;
select to_number('$1000','9999') from dual
? ? ? ? ? ? ? ? ?*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01722: 無效數(shù)字
SQL> select to_number('$1000','$9999') from dual;
TO_NUMBER('$1000','$9999')
--------------------------
? ? ? ? ? ? ? ? ? ? ? 1000
查看全部
舉報(bào)