zoukankan      html  css  js  c++  java
  • sql函数的使用——转换函数

    转换函数用于将数据类型从一种转为另外一种,在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型,比如:

    create table t1(id number);

    insert into t1 values(‘10’);   --->这样oracle会自动的将‘10’转换为10

    create table t2(id varchar2(10));

    insert into t2 values(11)    这样oracle就会自动的将11转换为‘11’

    我们要说的是尽管oracle可以这样隐含的将数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换。

    使用to_date函数

    (把字符串转换成指定格式的日期)

    我们在插入date列的时候,我们发现,必须以默认的格式(日-月-年)添加,实际上我们希望以自己习惯的方式添加,比如:

    insert into emp(empno,hiredate) values(2222,’1988-11-11’);  这样会出错。

    我们可以使用to_date进行日期转换

    insert into emp(empno,hiredate) values(2222,to_date’1988-11-11’’yyyy-mm-dd’);

     

    请大家思考:如何插入列带有日期的表,并按你--日的格式插入?

    to_charnumber/date/char)...

    你可以使用select ename,hiredate,sal from emp where deptno=10;显示信息,可是,在某些情况下,这个病不能满足你的需求。

    ?日期是否可以显示时分秒

    SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

    TO_CHAR(SYSDATE,'YYYY-MM-DDHH2

    ------------------------------

    2016-10-15 17:11:06

    9:显示数字,并忽略前面0

    0:显示数字,如位数不足,则用0补齐

    .:在指定位置显示小数点

    ,:在指定位置显示逗号

    $:在数字前加美元

    L:在数字前加本地货币符号

    C:在数字前加国际货币符号

    G:在指定位置显示组分隔符,

    D:在指定位置显示小数点符号(.

     

    yy:两位数的年份   2004-->04

    yyyy:四位数的年份   2004

    mm:两位数的月份     8-->08

    dd:两位素的天       30-->30

    hh24:24小时制      晚上8-->20:00 

    hh12:12小时制       8-->08:00

    mi:ss  显示分钟:

    day

     

    ?薪水是否可以显示指定的货币符号

     

    SQL> select ename,to_char(sal,'L99G999D99') from emp;

    ENAME      TO_CHAR(SAL,'L99G999D99')

    ---------- -------------------------

    xiaohong  

    SMITH                ¥1,190.00

    ALLEN                ¥1,600.00

    WARD                 ¥1,250.00

    JONES                ¥2,975.00

     

     

    ?根据deptno编号显示不同的信息

     

    SQL> select ename, decode(deptno,10,'10号部门',20,'20号部门',30,'30号部门') from emp;

    ENAME      DECODE(DEPTNO,10,'10号部门',20

    ---------- ---------------------------

    xiaohong  

    SMITH      20号部门

    ALLEN      30号部门

    WARD       30号部门

    JONES      20号部门

  • 相关阅读:
    C#+ArcEngine10.0+SP5实现鼠标移动动态显示要素属性信息
    C#中实现excel文件批量导入access数据表中
    C#子窗体闪烁问题解决
    C#打印代码运行时间
    TableLayoutPanel导致的闪屏问题
    线段余弦角+凸包算法
    ICommand相关知识
    批量导出access某表内容到word文档
    通过数组里的时间重新排序数组
    数组层级叠加
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11113840.html
Copyright © 2011-2022 走看看