SQL>
SQL>
SQL> CREATE TABLE emp (
2 emp_id NUMBER,
3 ename VARCHAR2(40),
4 hire_date DATE DEFAULT sysdate,
5 end_date DATE,
6 rate NUMBER(5,2),
7 CONSTRAINT emp_pk
8 PRIMARY KEY (emp_id)
9 );
Table created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (101, 'Mary', to_date('15-Nov-1961','dd-mon-yyyy'),null,169);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (102, 'Tom', to_date('16-Sep-1964','dd-mon-yyyy'),to_date('5-May-2004','dd-mon-yyyy'),135);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (104, 'Peter', to_date('29-Dec-1987','dd-mon-yyyy'),to_date('1-Apr-2004','dd-mon-yyyy'),99);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (105, 'Mike', to_date('15-Jun-2004','dd-mon-yyyy'),null,121);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (107, 'Less', to_date('2-Jan-2004','dd-mon-yyyy'),null,45);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (108, 'Park', to_date('1-Mar-1994','dd-mon-yyyy'),to_date('15-Nov-2004','dd-mon-yyyy'),220);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (110, 'Ink', to_date('4-Apr-2004','dd-mon-yyyy'),to_date('30-Sep-2004','dd-mon-yyyy'),84);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (111, 'Tike', to_date('23-Aug-1976','dd-mon-yyyy'),null,100);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (112, 'Inn', to_date('15-Nov-1961','dd-mon-yyyy'),to_date('4-Apr-2004','dd-mon-yyyy'),70);
1 row created.
SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (113, 'Kate', to_date('3-Mar-2004','dd-mon-yyyy'),to_date('31-Oct-2004','dd-mon-yyyy'),300);
1 row created.
SQL>
SQL> SET ECHO ON
SQL> SELECT e.emp_id "ID", e.ename "Name",
2 e.hire_date "Hire Date"
3 FROM emp e
4 ORDER BY EXTRACT(YEAR FROM hire_date) DESC, ename ASC;
110
Ink
04-APR-04
113
Kate
03-MAR-04
107
Less
02-JAN-04
105
Mike
15-JUN-04
108
Park
01-MAR-94
104
Peter
29-DEC-87
111
Tike
23-AUG-76
102
Tom
16-SEP-64
112
Inn
15-NOV-61
101
Mary
15-NOV-61
10 rows selected.
SQL>
SQL> drop table emp;
Table dropped.
13.6.EXTRACT |
| 13.6.1. | EXTRACT() to extract and return a year, month, day, hour, minute, second, or time zone from the timestamp types or a DATE. |
| 13.6.2. | SELECT EXTRACT(MONTH FROM TO_DATE('01-JAN-2005 19:15:26','DD-MON-YYYY HH24:MI:SS')) As MONTH |
| 13.6.3. | SELECT EXTRACT(YEAR FROM TO_DATE('01-JAN-2005 19:15:26','DD-MON-YYYY HH24:MI:SS')) AS YEAR |
| 13.6.4. | EXTRACT() gets the hour, minute, and second from a TIMESTAMP returned by TO_TIMESTAMP() |
| 13.6.5. | EXTRACT(MINUTE FROM TO_TIMESTAMP('01-JAN-2005 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS MINUTE |
| 13.6.6. | EXTRACT(SECOND FROM TO_TIMESTAMP('01-JAN-2005 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS SECOND |
| 13.6.7. | EXTRACT()gets the time zone hour, minute, second, region, and region abbreviation from a TIMESTAMP WITH TIMEZONE returned by TO_TIMESTAMP_TZ() |
| 13.6.8. | EXTRACT(TIMEZONE_MINUTE FROM TO_TIMESTAMP_TZ('01-JAN-2005 19:15:26 -7:15', 'DD-MON-YYYY HH24:MI:SS TZH:TZM')) |
| 13.6.9. | EXTRACT(TIMEZONE_REGION FROM TO_TIMESTAMP_TZ('01-JAN-2005 19:15:26 PST', 'DD-MON-YYYY HH24:MI:SS TZR')) |
| 13.6.10. | EXTRACT(TIMEZONE_ABBR FROM TO_TIMESTAMP_TZ('01-JAN-2005 19:15:26 PST', 'DD-MON-YYYY HH24:MI:SS TZR')) |
| 13.6.11. | extract year from birthday |
| 13.6.12. | extract month from birthday |
| 13.6.13. | extract day from birthday |
| 13.6.14. | Extract year, month, day from a date |
| 13.6.15. | Order date value by only year field with extract() function |