Oracle学习笔记(五)

2019-09-25  本文已影响0人  dev_winner
-- dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。
SQL> SELECT ROUND(23.45), ROUND(23.45, 1), ROUND(23.45, -1) FROM dual;
ROUND(23.45) ROUND(23.45,1) ROUND(23.45,-1)
------------ -------------- ---------------
          23           23.5              20
SQL> SELECT CEIL(23.45), FLOOR(23.45) FROM dual;
CEIL(23.45) FLOOR(23.45)
----------- ------------
         24           23
SQL> SELECT ABS(23.45), ABS(-23), ABS(0) FROM dual;
ABS(23.45)   ABS(-23)     ABS(0)
---------- ---------- ----------
     23.45         23          0
SQL> SELECT MOD(5, 2), MOD(5, null) FROM dual;
  MOD(5,2) MOD(5,NULL)
---------- -----------
         1
SQL> SELECT POWER(2, 3), POWER(null, 5) FROM dual;
POWER(2,3) POWER(NULL,5)
---------- -------------
         8
SQL> SELECT SQRT(16), SQRT(12) FROM dual;
  SQRT(16)   SQRT(12)
---------- ----------
         4 3.46410162
SQL> SELECT COS(0) FROM dual;
    COS(0)
----------
         1
SQL> SELECT UPPER('abc'), LOWER('ACD'), INITCAP('bas') FROM dual;
UPP LOW INI
--- --- ---
ABC acd Bas
SQL> SELECT SUBSTR('abcde', 2, 3), SUBSTR('abcde', 2), SUBSTR('abcde', -2, 2) FROM dual;
SUB SUBS SU
--- ---- --
bcd bcde de
SQL> SELECT LENGTH('abbsd') FROM dual;
LENGTH('ABBSD')
---------------
              5
SQL> SELECT CONCAT('ABCD', 'EFG') FROM dual;
CONCAT(
-------
ABCDEFG

SQL> SELECT 'ba' || 'cd' FROM dual;
'BA'
----
bacd
SQL> SELECT TRIM('d' FROM 'abcddddd') FROM dual;
TRI
---
abc

SQL> SELECT LTRIM('abcde', 'ab') FROM dual;
LTR
---
cde

SQL> SELECT RTRIM('ababcdcde', 'cd') FROM dual;
RTRIM('AB
---------
ababcdcde

SQL> SELECT RTRIM('ababcdcde', 'cde') FROM dual;
RTRI
----
abab

SQL> SELECT LTRIM('    ababcde ') FROM dual;
LTRIM('A
--------
ababcde

SQL> SELECT TRIM('    ababcde ') FROM dual;
TRIM('A
-------
ababcde
SQL> SELECT REPLACE('abced', 'a', 'AA') FROM dual;
REPLAC
------
AAbced

SQL> SELECT REPLACE('abced', 'a') FROM dual;
REPL
----
bced
SQL> SELECT SYSDATE FROM dual;
SYSDATE
--------------
29-9月 -19
SQL> SELECT ADD_MONTHS(SYSDATE, 3), ADD_MONTHS(SYSDATE, -3) FROM dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- --------------
29-12月-19     29-6月 -19
SQL> SELECT NEXT_DAY(SYSDATE, '星期一') FROM dual;
NEXT_DAY(SYSDA
--------------
30-9月 -19
SQL> SELECT LAST_DAY(SYSDATE) FROM dual;
LAST_DAY(SYSDA
--------------
30-9月 -19
SQL> SELECT MONTHS_BETWEEN('20-5月-19', '10-1月-19') FROM dual;
MONTHS_BETWEEN('20-5月-19','10-1月-19')
---------------------------------------
                             4.32258065
SQL> SELECT EXTRACT(year FROM SYSDATE) FROM dual;
EXTRACT(YEARFROMSYSDATE)
------------------------
                    2019

SQL> SELECT EXTRACT(month FROM SYSDATE) FROM dual;
EXTRACT(MONTHFROMSYSDATE)
-------------------------
                        9

SQL> SELECT EXTRACT(day FROM SYSDATE) FROM dual;
EXTRACT(DAYFROMSYSDATE)
-----------------------
                     29

SQL> SELECT EXTRACT(hour FROM timestamp '2019-9-29 17:25:13') FROM dual;
EXTRACT(HOURFROMTIMESTAMP'2019-9-2917:25:13')
---------------------------------------------
                                           17

YY、YYYY、YEAR(年)
MM、MONTH(月)
DD、DAY(天)
HH24、HH12(小时)
MI、SS(分钟、秒)

SQL> SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-09-29 13:06:07
SQL> SELECT TO_DATE('2019-09-29','YYYY-MM-DD') FROM dual;
TO_DATE('2019-
--------------
29-9月 -19

9:显示数字并忽略前面的0
0:显示数字,位数不足,用0补齐
.或D:显示小数点
, 或G:显示千位符
$:美元符号
S:加正负号(前后都可以,但不能同时加上)

-- 格式占位符缺失,将用'#'字符显示结果
SQL> SELECT TO_CHAR(123456.98, '$99,999.999') FROM dual;
TO_CHAR(1234
------------
############

SQL> SELECT TO_CHAR(123456.98, '$999,999.99') FROM dual;
TO_CHAR(1234
------------
 $123,456.98

-- 四舍五入
SQL> SELECT TO_CHAR(123456.98, '$999,999') FROM dual;
TO_CHAR(1
---------
 $123,457

SQL> SELECT TO_CHAR(123456.98, 'S999,999.99') FROM dual;
TO_CHAR(123
-----------
+123,456.98

SQL> SELECT TO_CHAR(-123456.98, '999,999.99S') FROM dual;
TO_CHAR(-12
-----------
123,456.98-
SQL> SELECT TO_NUMBER('$1,000', '$9999') FROM dual;
TO_NUMBER('$1,000','$9999')
---------------------------
                       1000
上一篇 下一篇

猜你喜欢

热点阅读