zoukankan      html  css  js  c++  java
  • Oracle中的转换函数

    TO_CHAR:转换成字符串

    TO_NUMBER:转换成数字

    TO_DATE:转换成日期

    example:SELECT empno,ename,TO_CHAR(hiredate,'yyyy')year,

        TO_CHAR(hiredate,'mm')months,

        TO_CHAR(hiredate,'dd')day from emp;


        EMPNO ENAME      YEAR MO DA
    --------- ---------- ---- -- --
         7369 SMITH      1980 12 17
         7499 ALLEN      1981 02 20
         7521 WARD       1981 02 22
         7566 JONES      1981 04 02
         7654 MARTIN     1981 09 28
         7698 BLAKE      1981 05 01
         7782 CLARK      1981 06 09
         7788 SCOTT      1987 04 19
         7839 KING       1981 11 17
         7844 TURNER     1981 09 08
         7876 ADAMS      1987 05 23

        EMPNO ENAME      YEAR MO DA
    --------- ---------- ---- -- --
         7900 JAMES      1981 12 03
         7902 FORD       1981 12 03
         7934 MILLER     1982 01 23

    可以使用to_char()函数进行日期显示的转换功能。

    SQL> select empno,ename,TO_CHAR(hiredate,'yyyy-mm-dd')from emp;

         EMPNO ENAME      TO_CHAR(HI
    ---------- ---------- ----------
          7369 SMITH      1980-12-17
          7499 ALLEN      1981-02-20
          7521 WARD       1981-02-22
          7566 JONES      1981-04-02
          7654 MARTIN     1981-09-28
          7698 BLAKE      1981-05-01
          7782 CLARK      1981-06-09
          7788 SCOTT      1987-04-19
          7839 KING       1981-11-17
          7844 TURNER     1981-09-08
          7876 ADAMS      1987-05-23
          7900 JAMES      1981-12-03
          7902 FORD       1981-12-03
          7934 MILLER     1982-01-23

    如果是5月,则会使用05表示,那么这个0称为前导0.如果不希望显示前导0的话,则可以使用fm去掉这些0

    SQL> select empno,ename,TO_CHAR(hiredate,'fmyyyy-mm-dd')hiredate from emp;

         EMPNO ENAME      HIREDATE
    ---------- ---------- ----------
          7369 SMITH      1980-12-17
          7499 ALLEN      1981-2-20
          7521 WARD       1981-2-22
          7566 JONES      1981-4-2
          7654 MARTIN     1981-9-28
          7698 BLAKE      1981-5-1
          7782 CLARK      1981-6-9
          7788 SCOTT      1987-4-19
          7839 KING       1981-11-17
          7844 TURNER     1981-9-8
          7876 ADAMS      1987-5-23
          7900 JAMES      1981-12-3
          7902 FORD       1981-12-3
          7934 MILLER     1982-1-23

    TO_CHAR()函数也可以用在数字上。

    在数字中加入一些符号以分割太长的数字,9表示一位数字

    SQL> select empno,ename,TO_CHAR(sal,'99,999')sal from emp;

         EMPNO ENAME      SAL
    ---------- ---------- -------
          7369 SMITH          800
          7499 ALLEN        1,600
          7521 WARD         1,250
          7566 JONES        2,975
          7654 MARTIN       1,250
          7698 BLAKE        2,850
          7782 CLARK        2,450
          7788 SCOTT        3,000
          7839 KING         5,000
          7844 TURNER       1,500
          7876 ADAMS        1,100
          7900 JAMES          950
          7902 FORD         3,000
          7934 MILLER       1,300

    在数字前面加入货币符号可以使用$,L(local,表示本地)

    SQL> select empno,ename,TO_CHAR(sal,'$99,999')sal from emp;

         EMPNO ENAME      SAL
    ---------- ---------- --------
          7369 SMITH          $800
          7499 ALLEN        $1,600
          7521 WARD         $1,250
          7566 JONES        $2,975
          7654 MARTIN       $1,250
          7698 BLAKE        $2,850
          7782 CLARK        $2,450
          7788 SCOTT        $3,000
          7839 KING         $5,000
          7844 TURNER       $1,500
          7876 ADAMS        $1,100
          7900 JAMES          $950
          7902 FORD         $3,000
          7934 MILLER       $1,300

    SQL> select empno,ename,TO_CHAR(sal,'L99,999')sal from emp;

         EMPNO ENAME      SAL
    ---------- ---------- -----------------
          7369 SMITH                  ¥800
          7499 ALLEN                ¥1,600
     To_NUMBER()将字符串转换为数字的函数

    TO_DATE()函数可以将一个字符串转换为DATE类型

    SQL> select TO_DATE('2009-02-16','yyyy-mm-dd') FROM DUAL;

    TO_DATE('2009-
    --------------
    16-2月 -09

  • 相关阅读:
    【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组
    【BZOJ1030】[JSOI2007]文本生成器 AC自动机+动态规划
    【BZOJ3943】[Usaco2015 Feb]SuperBull 最大生成树
    【BZOJ3940】【BZOJ3942】[Usaco2015 Feb]Censoring AC自动机/KMP/hash+栈
    【BZOJ3172】[Tjoi2013]单词 AC自动机
    【HDU2896】病毒侵袭 AC自动机
    【HDU2222】Keywords Search AC自动机
    【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP
    结婚晚了
    无毒食品
  • 原文地址:https://www.cnblogs.com/Earl/p/1741846.html
Copyright © 2011-2022 走看看