Anda di halaman 1dari 25

SQL> cl scr

SQL>
2
3
4
5

SELECT
4637.6274 MyNum,
ROUND(4637.6274) Round,
TRUNC(4637.6274) Trunc
FROM DUAl;

MYNUM
ROUND
TRUNC
---------- ---------- ---------4637.6274
4638
4637
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
4637.6274 MyNum,
ROUND(4637.6274, 3) Round,
TRUNC(4637.6274, 3) Trunc
FROM DUAl
/

MYNUM
ROUND
TRUNC
---------- ---------- ---------4637.6274 4637.627 4637.627
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
4637.6274 MyNum,
ROUND(4637.6274, 2) Round,
TRUNC(4637.6274, 2) Trunc
FROM DUAl
/

MYNUM
ROUND
TRUNC
---------- ---------- ---------4637.6274
4637.63
4637.62
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
4637.6274 MyNum,
ROUND(4637.6274, -3) Round,
TRUNC(4637.6274, -3) Trunc
FROM DUAl
/

MYNUM
ROUND
TRUNC
---------- ---------- ---------4637.6274
5000
4000
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 4637.6274 MyNum,
3 ROUND(4637.6274, -1) Round,

4 TRUNC(4637.6274, -1) Trunc


5* FROM DUAl
SQL> /
MYNUM
ROUND
TRUNC
---------- ---------- ---------4637.6274
4640
4630
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
23.25 MyNum,
CEIL(23.25) Ceiled,
FLOOR(23.25) Floored
FROM DUAl
/

MYNUM
CEILED
FLOORED
---------- ---------- ---------23.25
24
23
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
23 MyNum,
CEIL(23) Ceiled,
FLOOR(23) Floored
FROM DUAl
/

MYNUM
CEILED
FLOORED
---------- ---------- ---------23
23
23
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
0.00001 MyNum,
CEIL(0.00001) Ceiled,
FLOOR(0.00001) Floored
FROM DUAl
/

MYNUM
CEILED
FLOORED
---------- ---------- ---------.00001
1
0
SQL> cl scr
SQL> SELECT
2 MOD(25, 5) Modulus
3 FROM DUAl;

MODULUS
---------0
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
MOD(25, 3) Modulus
FROM DUAl
/

MODULUS
---------1
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
MOD(25, 0) Modulus
FROM DUAl
/

MODULUS
---------25
SQL> cl scr
SQL> SELECT
2 POWER(25, 5) Powered
3 FROM DUAl;
POWERED
---------9765625
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(-25, 5) Powered
FROM DUAl
/

POWERED
----------9765625
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(25, -5) Powered
FROM DUAl
/

POWERED
----------

1.0240E-07
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(-25, -5) Powered
FROM DUAl
/

POWERED
----------1.024E-07
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(25.25, 5) Powered
FROM DUAl
/

POWERED
---------10263770
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(25, 5.25) Powered
FROM DUAl
/

POWERED
---------21836601.3
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(25.25, 5.25) Powered
FROM DUAl
/

POWERED
---------23007649.8
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
POWER(-25.25, 5) Powered
FROM DUAl
/

POWERED
----------

-10263770
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 POWER(-25.25, 5.25) Powered
3* FROM DUAl
SQL> /
POWER(-25.25, 5.25) Powered
*
ERROR at line 2:
ORA-01428: argument '-25.25' is out of range
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 POWER(-25, 5.25) Powered
3* FROM DUAl
SQL> /
POWER(-25, 5.25) Powered
*
ERROR at line 2:
ORA-01428: argument '-25' is out of range
SQL> cl scr
SQL> SELECT SQRT(&GNum) Sqrt
2 FROM DUAl;
Enter value for gnum: 625
SQRT
---------25
SQL> /
Enter value for gnum: 625.5645
SQRT
---------25.0112875
SQL> /
Enter value for gnum: -625
SELECT SQRT(-625) Sqrt
*
ERROR at line 1:
ORA-01428: argument '-625' is out of range
SQL> cl scr
SQL> SELECT
2 125, 25, ABS(125 - 25) Absolute
3 FROM DUAL;
125

25

ABSOLUTE

---------- ---------- ---------125


25
100
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
25, 125, ABS(25 - 125) Absolute
FROM DUAL
/

25
125 ABSOLUTE
---------- ---------- ---------25
125
100
SQL> cl scr
SQL>
2
3
4

SELECT
Ename, Sal, Comm, Sal - Comm Diff, ABS(Sal - Comm) Absolute
FROM Emp
WHERE Comm IS NOT NULL;

ENAME
SAL
COMM
DIFF ABSOLUTE
--------------- ---------- ---------- ---------- ---------MARTIN
1250
1400
-150
150
ALLEN
1600
300
1300
1300
TURNER
1500
0
1500
1500
WARD
1250
500
750
750
SQL> cl scr
SQL> SELECT
2 125, 25, SIGN(125 - 25) Signed
3 FROM DUAl;
125
25
SIGNED
---------- ---------- ---------125
25
1
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
25, 125, SIGN(25 - 125) Signed
FROM DUAl
/

25
125
SIGNED
---------- ---------- ---------25
125
-1
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
125, 125, SIGN(125 - 125) Signed
FROM DUAl
/
125

125

SIGNED

---------- ---------- ---------125


125
0
SQL> cl scr
SQL> SELECT Ename, Sal, Comm
2 FROM Emp
3 WHERE Sal < Comm;
ENAME
SAL
COMM
--------------- ---------- ---------MARTIN
1250
1400
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT Ename, Sal, Comm


FROM Emp
WHERE SIGN(Sal - Comm) = -1
/

ENAME
SAL
COMM
--------------- ---------- ---------MARTIN
1250
1400
SQL> cl scr
SQL> SELECT
2 'The Current date in Server : '||SYSDATE MyDate
3 FROM DUAl;
MYDATE
-------------------------------------The Current date in Server : 13-JUN-09
SQL> /
MYDATE
-------------------------------------The Current date in Server : 10-JUN-09
SQL> /
MYDATE
-------------------------------------The Current date in Server : 13-JUN-09
SQL> SELECT
2 SYSDATE Current,
3 SYSDATE + 3 Three
4 FROM DUAl;
SYSDATE Current,
*
ERROR at line 2:
ORA-00923: FROM keyword not found where expected
SQL> ed
Wrote file afiedt.buf

1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE + 3 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 16-JUN-09
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE + 45 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 28-JUL-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE + 550 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 15-DEC-10
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE + 50565 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 22-NOV-47
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE - 3 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 10-JUN-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE - 45 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 29-APR-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE - 550 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 11-DEC-07
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE CurrentD,
SYSDATE - 55645 Three
FROM DUAl
/

CURRENTD THREE
--------- --------13-JUN-09 05-FEB-57
SQL> cl scr
SQL> SELECT Ename, Sal, HireDate, HireDate + 5 Five
2 FROM Emp;
ENAME
SAL HIREDATE FIVE
--------------- ---------- --------- --------KING
5000 17-NOV-81 22-NOV-81
BLAKE
2850 01-MAY-81 06-MAY-81
CLARK
2450 09-JUN-81 14-JUN-81
JONES
2975 02-APR-81 07-APR-81
MARTIN
1250 28-SEP-81 03-OCT-81
ALLEN
1600 20-FEB-81 25-FEB-81
TURNER
1500 08-SEP-81 13-SEP-81
JAMES
950 03-DEC-81 08-DEC-81
WARD
1250 22-FEB-81 27-FEB-81
FORD
3000 03-DEC-81 08-DEC-81

SMITH

800 17-DEC-80 22-DEC-80

ENAME
SAL HIREDATE FIVE
--------------- ---------- --------- --------SCOTT
3000 09-DEC-82 14-DEC-82
ADAMS
1100 12-JAN-83 17-JAN-83
MILLER
1300 23-JAN-82 28-JAN-82
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT Ename, Sal, HireDate, HireDate - 5 Five
2* FROM Emp
SQL> /
ENAME
SAL HIREDATE FIVE
--------------- ---------- --------- --------KING
5000 17-NOV-81 12-NOV-81
BLAKE
2850 01-MAY-81 26-APR-81
CLARK
2450 09-JUN-81 04-JUN-81
JONES
2975 02-APR-81 28-MAR-81
MARTIN
1250 28-SEP-81 23-SEP-81
ALLEN
1600 20-FEB-81 15-FEB-81
TURNER
1500 08-SEP-81 03-SEP-81
JAMES
950 03-DEC-81 28-NOV-81
WARD
1250 22-FEB-81 17-FEB-81
FORD
3000 03-DEC-81 28-NOV-81
SMITH
800 17-DEC-80 12-DEC-80
ENAME
SAL HIREDATE FIVE
--------------- ---------- --------- --------SCOTT
3000 09-DEC-82 04-DEC-82
ADAMS
1100 12-JAN-83 07-JAN-83
MILLER
1300 23-JAN-82 18-JAN-82
14 rows selected.
SQL> cl scr
SQL> SELECT
2 '13-JUN-09' MyDate,
3 '13-JUN-09' + 3 Three
4 FROM DUAl;
'13-JUN-09' + 3 Three
*
ERROR at line 3:
ORA-01722: invalid number
SQL> cl scr
SQL> SELECT
2 Ename, Sal, SYSDATE, HireDate, SYSDATE - HireDate DateDiff
3 FROM Emp;
ENAME
SAL SYSDATE HIREDATE
DATEDIFF
--------------- ---------- --------- --------- ---------KING
5000 13-JUN-09 17-NOV-81 10070.4899

BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

2850
2450
2975
1250
1600
1500
950
1250
3000
800

13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

01-MAY-81
09-JUN-81
02-APR-81
28-SEP-81
20-FEB-81
08-SEP-81
03-DEC-81
22-FEB-81
03-DEC-81
17-DEC-80

10270.4899
10231.4899
10299.4899
10120.4899
10340.4899
10140.4899
10054.4899
10338.4899
10054.4899
10405.4899

ENAME
SAL SYSDATE HIREDATE
DATEDIFF
--------------- ---------- --------- --------- ---------SCOTT
3000 13-JUN-09 09-DEC-82 9683.4899
ADAMS
1100 13-JUN-09 12-JAN-83 9649.4899
MILLER
1300 13-JUN-09 23-JAN-82 10003.4899
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 Ename, Sal, SYSDATE, HireDate,
3 TRUN(SYSDATE - HireDate) DateDiff
4* FROM Emp
SQL> /
TRUN(SYSDATE - HireDate) DateDiff
*
ERROR at line 3:
ORA-00904: "TRUN": invalid identifier
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>
SQL>

SELECT
Ename, Sal, SYSDATE, HireDate,
TRUNC(SYSDATE - HireDate) DateDiff
FROM Emp
/

ENAME
SAL SYSDATE HIREDATE
DATEDIFF
--------------- ---------- --------- --------- ---------KING
5000 13-JUN-09 17-NOV-81
10070
BLAKE
2850 13-JUN-09 01-MAY-81
10270
CLARK
2450 13-JUN-09 09-JUN-81
10231
JONES
2975 13-JUN-09 02-APR-81
10299
MARTIN
1250 13-JUN-09 28-SEP-81
10120
ALLEN
1600 13-JUN-09 20-FEB-81
10340
TURNER
1500 13-JUN-09 08-SEP-81
10140
JAMES
950 13-JUN-09 03-DEC-81
10054
WARD
1250 13-JUN-09 22-FEB-81
10338
FORD
3000 13-JUN-09 03-DEC-81
10054
SMITH
800 13-JUN-09 17-DEC-80
10405
ENAME
SAL SYSDATE HIREDATE
DATEDIFF
--------------- ---------- --------- --------- ---------SCOTT
3000 13-JUN-09 09-DEC-82
9683

ADAMS
MILLER

1100 13-JUN-09 12-JAN-83


1300 13-JUN-09 23-JAN-82

9649
10003

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
Ename, Sal, SYSDATE, HireDate,
TRUNC((SYSDATE - HireDate) / 365) EmpExpYears
FROM Emp
/

ENAME
SAL SYSDATE HIREDATE EMPEXPYEARS
--------------- ---------- --------- --------- ----------KING
5000 13-JUN-09 17-NOV-81
27
BLAKE
2850 13-JUN-09 01-MAY-81
28
CLARK
2450 13-JUN-09 09-JUN-81
28
JONES
2975 13-JUN-09 02-APR-81
28
MARTIN
1250 13-JUN-09 28-SEP-81
27
ALLEN
1600 13-JUN-09 20-FEB-81
28
TURNER
1500 13-JUN-09 08-SEP-81
27
JAMES
950 13-JUN-09 03-DEC-81
27
WARD
1250 13-JUN-09 22-FEB-81
28
FORD
3000 13-JUN-09 03-DEC-81
27
SMITH
800 13-JUN-09 17-DEC-80
28
ENAME
SAL SYSDATE HIREDATE EMPEXPYEARS
--------------- ---------- --------- --------- ----------SCOTT
3000 13-JUN-09 09-DEC-82
26
ADAMS
1100 13-JUN-09 12-JAN-83
26
MILLER
1300 13-JUN-09 23-JAN-82
27
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
Ename, Sal, SYSDATE, HireDate,
TRUNC((HireDate - SYSDATE) / 365) EmpExpYears
FROM Emp
/

ENAME
SAL SYSDATE HIREDATE EMPEXPYEARS
--------------- ---------- --------- --------- ----------KING
5000 13-JUN-09 17-NOV-81
-27
BLAKE
2850 13-JUN-09 01-MAY-81
-28
CLARK
2450 13-JUN-09 09-JUN-81
-28
JONES
2975 13-JUN-09 02-APR-81
-28
MARTIN
1250 13-JUN-09 28-SEP-81
-27
ALLEN
1600 13-JUN-09 20-FEB-81
-28
TURNER
1500 13-JUN-09 08-SEP-81
-27
JAMES
950 13-JUN-09 03-DEC-81
-27
WARD
1250 13-JUN-09 22-FEB-81
-28
FORD
3000 13-JUN-09 03-DEC-81
-27
SMITH
800 13-JUN-09 17-DEC-80
-28
ENAME

SAL SYSDATE

HIREDATE EMPEXPYEARS

--------------- ---------- --------- --------- ----------SCOTT


3000 13-JUN-09 09-DEC-82
-26
ADAMS
1100 13-JUN-09 12-JAN-83
-26
MILLER
1300 13-JUN-09 23-JAN-82
-27
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
Ename, Sal, SYSDATE, HireDate,
ABS(TRUNC((HireDate - SYSDATE) / 365)) EmpExpYears
FROM Emp
/

ENAME
SAL SYSDATE HIREDATE EMPEXPYEARS
--------------- ---------- --------- --------- ----------KING
5000 13-JUN-09 17-NOV-81
27
BLAKE
2850 13-JUN-09 01-MAY-81
28
CLARK
2450 13-JUN-09 09-JUN-81
28
JONES
2975 13-JUN-09 02-APR-81
28
MARTIN
1250 13-JUN-09 28-SEP-81
27
ALLEN
1600 13-JUN-09 20-FEB-81
28
TURNER
1500 13-JUN-09 08-SEP-81
27
JAMES
950 13-JUN-09 03-DEC-81
27
WARD
1250 13-JUN-09 22-FEB-81
28
FORD
3000 13-JUN-09 03-DEC-81
27
SMITH
800 13-JUN-09 17-DEC-80
28
ENAME
SAL SYSDATE HIREDATE EMPEXPYEARS
--------------- ---------- --------- --------- ----------SCOTT
3000 13-JUN-09 09-DEC-82
26
ADAMS
1100 13-JUN-09 12-JAN-83
26
MILLER
1300 13-JUN-09 23-JAN-82
27
14 rows selected.
SQL> cl scrcl scr
SP2-0158: unknown CLEAR option "scrcl"
SQL> SELECT
2 SYSDATE + (72/24)
3 FROM DUAL;
SYSDATE+(
--------16-JUN-09
SQL> cl scr
SQL> SELECT
2 SYSDATE, SYSDATE + 90 MyDate
3 FROM DUAl;
SYSDATE MYDATE
--------- --------13-JUN-09 11-SEP-09
SQL> SELECT

2 SYSDATE, ADD_MONTHS(SYSDATE, 3) Added


3 FROM DUAL;
SYSDATE ADDED
--------- --------13-JUN-09 13-SEP-09
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
SYSDATE, ADD_MONTHS(SYSDATE, -3) Added
FROM DUAL
/

SYSDATE ADDED
--------- --------13-JUN-09 13-MAR-09
SQL> SELECT Ename, HireDate, ADD_MONTHS(HireDate, 3) Added
2 FROM Emp;
ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

HIREDATE
--------17-NOV-81
01-MAY-81
09-JUN-81
02-APR-81
28-SEP-81
20-FEB-81
08-SEP-81
03-DEC-81
22-FEB-81
03-DEC-81
17-DEC-80

ADDED
--------17-FEB-82
01-AUG-81
09-SEP-81
02-JUL-81
28-DEC-81
20-MAY-81
08-DEC-81
03-MAR-82
22-MAY-81
03-MAR-82
17-MAR-81

ENAME
--------------SCOTT
ADAMS
MILLER

HIREDATE
--------09-DEC-82
12-JAN-83
23-JAN-82

ADDED
--------09-MAR-83
12-APR-83
23-APR-82

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT Ename, HireDate, ADD_MONTHS(HireDate, -24) Added
2* FROM Emp
SQL> /
ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER

HIREDATE
--------17-NOV-81
01-MAY-81
09-JUN-81
02-APR-81
28-SEP-81
20-FEB-81
08-SEP-81

ADDED
--------17-NOV-79
01-MAY-79
09-JUN-79
02-APR-79
28-SEP-79
20-FEB-79
08-SEP-79

JAMES
WARD
FORD
SMITH

03-DEC-81
22-FEB-81
03-DEC-81
17-DEC-80

03-DEC-79
22-FEB-79
03-DEC-79
17-DEC-78

ENAME
--------------SCOTT
ADAMS
MILLER

HIREDATE
--------09-DEC-82
12-JAN-83
23-JAN-82

ADDED
--------09-DEC-80
12-JAN-81
23-JAN-80

14 rows selected.
SQL> cl scr
SQL>
2
3
4

SELECT
'13-JUN-09' Today,
ADD_MONTHS('13-JUN-09', 3) Three
FROM DUAL;

TODAY
THREE
--------- --------13-JUN-09 13-SEP-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
'13-JUN-09' Today,
ADD_MONTHS('13-JUN-2009', 3) Three
FROM DUAL
/

TODAY
THREE
--------- --------13-JUN-09 13-SEP-09
SQL> cl scr
SQL>
2
3
4

SELECT
Ename, SYSDATE, HireDate,
MONTHS_BETWEEN(SYSDATE, HireDate) Months
FROM Emp;

ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
--------17-NOV-81
01-MAY-81
09-JUN-81
02-APR-81
28-SEP-81
20-FEB-81
08-SEP-81
03-DEC-81
22-FEB-81
03-DEC-81
17-DEC-80

MONTHS
---------330.887024
337.403153
336.145088
338.370895
332.532185
339.79025
333.177347
330.338637
339.725734
330.338637
341.887024

ENAME
SYSDATE HIREDATE
MONTHS
--------------- --------- --------- ----------

SCOTT
ADAMS
MILLER

13-JUN-09 09-DEC-82 318.145088


13-JUN-09 12-JAN-83 317.048314
13-JUN-09 23-JAN-82 328.693476

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
Ename, SYSDATE, HireDate,
TRUNC(MONTHS_BETWEEN(SYSDATE, HireDate)) Months
FROM Emp
/

ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
MONTHS
--------- ---------17-NOV-81
330
01-MAY-81
337
09-JUN-81
336
02-APR-81
338
28-SEP-81
332
20-FEB-81
339
08-SEP-81
333
03-DEC-81
330
22-FEB-81
339
03-DEC-81
330
17-DEC-80
341

ENAME
--------------SCOTT
ADAMS
MILLER

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
MONTHS
--------- ---------09-DEC-82
318
12-JAN-83
317
23-JAN-82
328

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename, SYSDATE, HireDate,
TRUNC(MONTHS_BETWEEN(SYSDATE, HireDate)) Months
FROM Emp
WHERE
TRUNC(MONTHS_BETWEEN(SYSDATE, HireDate)) > 360
/

no rows selected
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename, SYSDATE, HireDate,
TRUNC(MONTHS_BETWEEN(SYSDATE, HireDate)) Months
FROM Emp
WHERE
TRUNC(MONTHS_BETWEEN(SYSDATE, HireDate)) > 332
/

ENAME
--------------BLAKE
CLARK
JONES
ALLEN
TURNER
WARD
SMITH

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
MONTHS
--------- ---------01-MAY-81
337
09-JUN-81
336
02-APR-81
338
20-FEB-81
339
08-SEP-81
333
22-FEB-81
339
17-DEC-80
341

7 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
6

SELECT
Ename, SYSDATE, HireDate,
TRUNC((MONTHS_BETWEEN(SYSDATE, HireDate)) / 12) EmpExp,
TRUNC(((SYSDATE - HireDate) / 12)) EmpExp
FROM Emp
/

ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
EMPEXP
EMPEXP
--------- ---------- ---------17-NOV-81
27
839
01-MAY-81
28
855
09-JUN-81
28
852
02-APR-81
28
858
28-SEP-81
27
843
20-FEB-81
28
861
08-SEP-81
27
845
03-DEC-81
27
837
22-FEB-81
28
861
03-DEC-81
27
837
17-DEC-80
28
867

ENAME
--------------SCOTT
ADAMS
MILLER

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
EMPEXP
EMPEXP
--------- ---------- ---------09-DEC-82
26
806
12-JAN-83
26
804
23-JAN-82
27
833

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
Ename, SYSDATE, HireDate,
TRUNC((MONTHS_BETWEEN(SYSDATE, HireDate)) / 12) EmpExp,
TRUNC(((SYSDATE - HireDate) / 365)) EmpExp
FROM Emp
/

ENAME
--------------KING
BLAKE
CLARK

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
EMPEXP
EMPEXP
--------- ---------- ---------17-NOV-81
27
27
01-MAY-81
28
28
09-JUN-81
28
28

JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

02-APR-81
28-SEP-81
20-FEB-81
08-SEP-81
03-DEC-81
22-FEB-81
03-DEC-81
17-DEC-80

28
27
28
27
27
28
27
28

28
27
28
27
27
28
27
28

ENAME
--------------SCOTT
ADAMS
MILLER

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
EMPEXP
EMPEXP
--------- ---------- ---------09-DEC-82
26
26
12-JAN-83
26
26
23-JAN-82
27
27

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename, SYSDATE, HireDate,
TRUNC((MONTHS_BETWEEN(SYSDATE, HireDate)) / 12) EmpExp
FROM Emp
WHERE
TRUNC((MONTHS_BETWEEN(SYSDATE, HireDate)) / 12) > 27
/

ENAME
--------------BLAKE
CLARK
JONES
ALLEN
WARD
SMITH

SYSDATE
--------13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09
13-JUN-09

HIREDATE
EMPEXP
--------- ---------01-MAY-81
28
09-JUN-81
28
02-APR-81
28
20-FEB-81
28
22-FEB-81
28
17-DEC-80
28

6 rows selected.
SQL> cl scr
SQL>
2
3
4

SELECT
SYSDATE ToDay,
NEXT_DAY(SYSDATE, 'WED') Wednesday
FROM DUAL;

TODAY
WEDNESDAY
--------- --------13-JUN-09 17-JUN-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>
TODAY

SELECT
SYSDATE ToDay,
NEXT_DAY(SYSDATE, 'SAT') Wednesday
FROM DUAL
/
WEDNESDAY

--------- --------13-JUN-09 20-JUN-09


SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE ToDay,
NEXT_DAY(SYSDATE, 1) Nextday
FROM DUAL
/

TODAY
NEXTDAY
--------- --------13-JUN-09 14-JUN-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE ToDay,
NEXT_DAY(SYSDATE, 6) Nextday
FROM DUAL
/

TODAY
NEXTDAY
--------- --------13-JUN-09 19-JUN-09
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
SYSDATE ToDay,
NEXT_DAY(SYSDATE, 'FRIDAY') Nextday
FROM DUAL
/

TODAY
NEXTDAY
--------- --------13-JUN-09 19-JUN-09
SQL> cl scr
SQL>
2
3
4

SELECT
SYSDATE Today,
LAST_DAY(SYSDATE) LastDay
FROM DUAL;

TODAY
LASTDAY
--------- --------13-JUN-09 30-JUN-09
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 'Today is '||SYSDATE||' hence The Number of Days Left in This Month Are '||
TRUNC((LAST_DAY(SYSDATE) - SYSDATE)) DaysLeft
3* FROM DUAL

SQL> /
DAYSLEFT
-------------------------------------------------------------------------------Today is 13-JUN-09 hence The Number of Days Left in This Month Are 17
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 'Today is '||SYSDATE||' hence The Number of Days Left in This Month Are '||
TRUNC((LAST_DAY(SYSDATE) - SYSDATE)) DaysLeft
3* FROM DUAL
SQL> cl scr
SQL>
2
3
4
5

SELECT
SYSDATE ToDay,
ROUND(SYSDATE) Rounded,
TRUNC(SYSDATE) Truncated
FROM DUAL;

TODAY
ROUNDED TRUNCATED
--------- --------- --------13-JUN-09 14-JUN-09 13-JUN-09
SQL> /
TODAY
ROUNDED TRUNCATED
--------- --------- --------13-JUN-09 13-JUN-09 13-JUN-09
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
SYSDATE ToDay,
ROUND(SYSDATE, 'DAY') Rounded,
TRUNC(SYSDATE, 'DAY') Truncated
FROM DUAL
/

TODAY
ROUNDED TRUNCATED
--------- --------- --------13-JUN-09 14-JUN-09 07-JUN-09
SQL> /
TODAY
ROUNDED TRUNCATED
--------- --------- --------10-JUN-09 14-JUN-09 07-JUN-09
SQL> /
TODAY
ROUNDED TRUNCATED
--------- --------- --------10-JUN-09 07-JUN-09 07-JUN-09
SQL> cl scr

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
SYSDATE ToDay,
ROUND(SYSDATE, 'MONTH') Rounded,
TRUNC(SYSDATE, 'MONTH') Truncated
FROM DUAL
/

TODAY
ROUNDED TRUNCATED
--------- --------- --------13-JUN-09 01-JUN-09 01-JUN-09
SQL> /
TODAY
ROUNDED TRUNCATED
--------- --------- --------16-JUN-09 01-JUL-09 01-JUN-09
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
SYSDATE ToDay,
ROUND(SYSDATE, 'YEAR') Rounded,
TRUNC(SYSDATE, 'YEAR') Truncated
FROM DUAL
/

TODAY
ROUNDED TRUNCATED
--------- --------- --------13-JUN-09 01-JAN-09 01-JAN-09
SQL> /
TODAY
ROUNDED TRUNCATED
--------- --------- --------13-JUL-09 01-JAN-10 01-JAN-09
SQL> cl scr
SQL> SELECT
2 '13-JUN-09' + 3
3 FROM DUAl;
'13-JUN-09' + 3
*
ERROR at line 2:
ORA-01722: invalid number
SQL> SELECT
2 '125' + '25'
3 FROM DUAL;
'125'+'25'
----------

150
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 '1,225' + '2,325'
3* FROM DUAL
SQL> /
'1,225' + '2,325'
*
ERROR at line 2:
ORA-01722: invalid number
SQL> cl scr
SQL> SELECT
2 '1234.00', '2345.00', '1234.00' + '2345.00' Result
3 FROM DUAL;
'1234.0 '2345.0
RESULT
------- ------- ---------1234.00 2345.00
3579
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
'1234.20', '2345.40', '1234.20' + '2345.40' Result
FROM DUAL
/

'1234.2 '2345.4
RESULT
------- ------- ---------1234.20 2345.40
3579.6
SQL> cl scr
SQL>
2
3
4
5

SELECT
'1234.00' Num1,
'2345.00' num2,
TO_CHAR(1234 + 2345, '9999D99') Result
FROM DUAL;

NUM1
NUM2
RESULT
------- ------- -------1234.00 2345.00 3579.00
SQL> cl scr
SQL> SELECT Ename, Sal, Comm, Sal + NVL(Comm, 0) TotSal
2 FROM Emp;
ENAME
SAL
COMM
TOTSAL
--------------- ---------- ---------- ---------KING
5000
5000
BLAKE
2850
2850
CLARK
2450
2450
JONES
2975
2975

MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

1250
1600
1500
950
1250
3000
800

1400
300
0
500

2650
1900
1500
950
1750
3000
800

ENAME
SAL
COMM
TOTSAL
--------------- ---------- ---------- ---------SCOTT
3000
3000
ADAMS
1100
1100
MILLER
1300
1300
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
TO_CHAR(Sal, '9999D99') Sal,
TO_CHAR(Comm, '9999D99') Comm,
TO_CHAR(Sal + NVL(Comm, 0), '9999D99') TotSal
FROM Emp
/

ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SAL
COMM
TOTSAL
-------- -------- -------5000.00
5000.00
2850.00
2850.00
2450.00
2450.00
2975.00
2975.00
1250.00 1400.00 2650.00
1600.00 300.00 1900.00
1500.00
.00 1500.00
950.00
950.00
1250.00 500.00 1750.00
3000.00
3000.00
800.00
800.00

ENAME
--------------SCOTT
ADAMS
MILLER

SAL
COMM
-------- -------3000.00
1100.00
1300.00

TOTSAL
-------3000.00
1100.00
1300.00

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
TO_CHAR(Sal, '9999D99') Sal,
TO_CHAR(NVL(Comm, 0), '9999D99') Comm,
TO_CHAR(Sal + NVL(Comm, 0), '9999D99') TotSal
FROM Emp
/

ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SAL
COMM
TOTSAL
-------- -------- -------5000.00
.00 5000.00
2850.00
.00 2850.00
2450.00
.00 2450.00
2975.00
.00 2975.00
1250.00 1400.00 2650.00
1600.00 300.00 1900.00
1500.00
.00 1500.00
950.00
.00 950.00
1250.00 500.00 1750.00
3000.00
.00 3000.00
800.00
.00 800.00

ENAME
--------------SCOTT
ADAMS
MILLER

SAL
COMM
TOTSAL
-------- -------- -------3000.00
.00 3000.00
1100.00
.00 1100.00
1300.00
.00 1300.00

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
Ename,
TO_CHAR(Sal, '999D99') Sal,
TO_CHAR(NVL(Comm, 0), '999D99') Comm,
TO_CHAR(Sal + NVL(Comm, 0), '999D99') TotSal
FROM Emp
/

ENAME
--------------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SAL
------#######
#######
#######
#######
#######
#######
#######
950.00
#######
#######
800.00

ENAME
--------------SCOTT
ADAMS
MILLER

SAL
COMM
TOTSAL
------- ------- ------#######
.00 #######
#######
.00 #######
#######
.00 #######

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 Ename,

COMM
------.00
.00
.00
.00
#######
300.00
.00
.00
500.00
.00
.00

TOTSAL
------#######
#######
#######
#######
#######
#######
#######
950.00
#######
#######
800.00

3
4
5
6*
SQL>

TO_CHAR(Sal, '99999D99') Sal,


TO_CHAR(NVL(Comm, 0), '99999D99') Comm,
TO_CHAR(Sal + NVL(Comm, 0), '99999D99') TotSal
FROM Emp
/

ENAME
SAL
COMM
TOTSAL
--------------- --------- --------- --------KING
5000.00
.00 5000.00
BLAKE
2850.00
.00 2850.00
CLARK
2450.00
.00 2450.00
JONES
2975.00
.00 2975.00
MARTIN
1250.00 1400.00 2650.00
ALLEN
1600.00
300.00 1900.00
TURNER
1500.00
.00 1500.00
JAMES
950.00
.00
950.00
WARD
1250.00
500.00 1750.00
FORD
3000.00
.00 3000.00
SMITH
800.00
.00
800.00
ENAME
SAL
COMM
TOTSAL
--------------- --------- --------- --------SCOTT
3000.00
.00 3000.00
ADAMS
1100.00
.00 1100.00
MILLER
1300.00
.00 1300.00
14 rows selected.
SQL> SPOOL OFF

Anda mungkin juga menyukai