Oracle PL/SQL/Conversion Functions/CAST — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 13:45, 26 мая 2010
Содержание
cast(12.98 as number(2))
SQL>
SQL> select cast(12.98 as number(2)) example1
2 , cast("oak" as char(10) ) example2
3 , cast(null as date ) example3
4 from dual;
EXAMPLE1 EXAMPLE2 EXAMPLE3
---------- ---------- ----------
13 oak
SQL>
CAST() convertS one built-in data type (cast) into another
SQL>
Syntax: CAST(<expression> | [(subquery)] | [MULTISET (subquery)] AS type_name)
SQL>
SQL> SELECT CAST("05-JUN-2004" AS DATE) + 3 threedaysahead
2 FROM dual;
THREEDAYS
---------
08-JUN-04
cast(null as date )
SQL>
SQL> select cast(12.98 as number(2)) example1
2 , cast("oak" as char(10) ) example2
3 , cast(null as date ) example3
4 from dual;
EXAMPLE1 EXAMPLE2 EXAMPLE3
---------- ---------- ----------
13 oak
SQL>
Cast null as timestamp
SQL> SELECT CAST(NULL AS TIMESTAMP WITH LOCAL TIME ZONE) from dual;
CAST(NULLASTIMESTAMPWITHLOCALTIMEZONE)
---------------------------------------------------------------------------
Cast string to date type before comparison
SQL> create table emp
2 ( empno NUMBER(4) constraint E_PK primary key
3 , ename VARCHAR2(8)
4 , init VARCHAR2(5)
5 , job VARCHAR2(8)
6 , mgr NUMBER(4)
7 , bdate DATE
8 , sal NUMBER(6,2)
9 , comm NUMBER(6,2)
10 , deptno NUMBER(2) default 10
11 ) ;
Table created.
SQL> insert into emp values(1,"Tom","N", "Coder", 13,date "1965-12-17", 800 , NULL, 20);
1 row created.
SQL> insert into emp values(2,"Jack","JAM", "Tester",6,date "1961-02-20", 1600, 300, 30);
1 row created.
SQL> insert into emp values(3,"Wil","TF" , "Tester",6,date "1962-02-22", 1250, 500, 30);
1 row created.
SQL> insert into emp values(4,"Jane","JM", "Designer", 9,date "1967-04-02", 2975, NULL, 20);
1 row created.
SQL> insert into emp values(5,"Mary","P", "Tester",6,date "1956-09-28", 1250, 1400, 30);
1 row created.
SQL> insert into emp values(6,"Black","R", "Designer", 9,date "1963-11-01", 2850, NULL, 30);
1 row created.
SQL> insert into emp values(7,"Chris","AB", "Designer", 9,date "1965-06-09", 2450, NULL, 10);
1 row created.
SQL> insert into emp values(8,"Smart","SCJ", "Coder", 4,date "1959-11-26", 3000, NULL, 20);
1 row created.
SQL> insert into emp values(9,"Peter","CC", "Designer",NULL,date "1952-11-17", 5000, NULL, 10);
1 row created.
SQL> insert into emp values(10,"Take","JJ", "Tester",6,date "1968-09-28", 1500, 0, 30);
1 row created.
SQL> insert into emp values(11,"Ana","AA", "Coder", 8,date "1966-12-30", 1100, NULL, 20);
1 row created.
SQL> insert into emp values(12,"Jane","R", "Manager", 6,date "1969-12-03", 800 , NULL, 30);
1 row created.
SQL> insert into emp values(13,"Fake","MG", "Coder", 4,date "1959-02-13", 3000, NULL, 20);
1 row created.
SQL> insert into emp values(14,"Mike","TJA","Manager", 7,date "1962-01-23", 1300, NULL, 10);
1 row created.
SQL>
SQL>
SQL> select e.ename as emp
2 , m.ename as Designer
3 from emp m
4 JOIN
5 emp e
6 ON e.mgr = m.empno
7 where e.bdate > date "1965-01-01"
8 order by emp;
EMP DESIGNER
-------- --------
Ana Smart
Chris Peter
Jane Black
Jane Peter
Take Black
Tom Fake
6 rows selected.
SQL>
SQL> drop table emp;
Table dropped.