Oracle基礎教程:單行函數—類型轉換函式

來源:互聯網
上載者:User

不同資料類型之間的轉換
在指派陳述式中資料類型會隱式轉換,隱式轉換應當盡量避免,因為寫出來的SQL難理解,隨著時間流逝自己都很難理解
特別是嵌入到大型程式中時,另外,Oracle升級會修改隱式轉換的規則,這會使程式移植遇到問題.
尤其是索引列不能使用隱式轉換 那樣就不走索引了

指派陳述式中oracle的自動轉換規則:
 1.將變長字元型(varchar2)或定長字元型(char)轉換成數值型(number)
 2.將變長字元型(varchar2)或定長字元型(char)轉換成日期型(date)
 3.將數值型(number)轉換成變長字元型(varchar2)
 4.將日期型(date)轉換成變長字元型(varchar2)

運算式中oracle的自動轉換規則:
 1.將變長字元型(varchar2)或定長字元型(char)轉換成數值型(number)
 2.將變長字元型(varchar2)或定長字元型(char)轉換成日期型(date)

 

轉換成功的條件:
 在將字元型資料轉換成數字型時,要保證字元型資料為有效數.
 在將字元型資料轉換成日期型時,要保證字元型資料位元有效日期.
 
SQL> select ename,sal from emp where sal > '4000';

ENAME    SAL
---------- ----------
KING   5000

SQL>   拿字元和數字比較 oracle自動將字串轉成了數字

SQL> select ename,hiredate from emp where hiredate = '17-NOV-81';

ENAME    HIREDATE
---------- ------------------
KING    17-NOV-81

SQL>   拿字串充當日期 oracle自動將字串轉成了日期

不能直接轉換
 數值型和日期型之間不能直接轉換,必須將其中之一先轉換為字元型,之後再轉換為另一種類型

 

顯示轉換函式:
 to_char
 to_number
 to_date
 

 
to_char(日期,'fmt') 
 將日期型資料轉換成字變長字串.fmt為日期格式
 日期格式必須用單引號擴起來
 常用的時間格式:
  YYYY  數字年
  YEAR  英文年
  MM    數字月
  MONTH 英文月
  DY    縮寫的星期
  DAY   完整的星期
  DD    數字日期
  hh    12小時
  HH24  24小時
  MI    分鐘
  SS    秒

idle> select ename,to_char(hiredate,'YYYY-MM-DD') from emp where ename='SCOTT';

ENAME    TO_CHAR(HI
---------- ----------
SCOTT    1987-04-19

idle>  將日期型轉換成了字元型

to_char(數字,'fmt')
 將數字轉換成變長字串.fmt為數字格式
 9 一個數字  給定的9個數不足 會顯示#
 0 顯示前置0
 $ 貨幣符號
 L 本地貨幣符號
 . 小數點
 , 千位符

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.