SQL>grant select on nama_table to nama_database_yang_dituju;
Untuk membuat synonym di oracle
SQL> create synonym nama_table for nama_database_yang _digrant.nama_table;
Membuat fungsi untuk mencari selisih waktu
SQL> create or replace function datediff( p_what in varchar2,
2 p_d1 in date,
3 p_d2 in date ) return number
4 as
5 l_result number;
6 begin
7 select (p_d2-p_d1) *
8 decode( upper(p_what),
9 'SS', 24*60*60, 'MI', 24*60, 'HH', 24, NULL )
10 into l_result from dual;
11
11 return l_result;
12 end;
13 /
Function created
SQL> create or replace view temp_view
2 as
3 select to_date('01-JAN-1999 12:02:04', 'dd-mon-yyyy hh24:mi:ss' ) d1,
4 to_date('15-MAR-1999 01:34:23', 'dd-mon-yyyy hh24:mi:ss' ) d2
5 from dual
6 /
View created.
sekarang tinggal memanggil fungsinya saja
SQL> select datediff( 'ss', d1, d2 ) seconds from temp_view;
SECONDS
----------
6269539
SQL> select datediff( 'mi', d1, d2 ) minutes from temp_view;
MINUTES
----------
104492.317
SQL> select datediff( 'hh', d1, d2 ) hours from temp_view;
HOURS
----------
1741.53861
menambah waktu pada date di oracle
- Tambahkan sehari. pilih to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ‘ss) hari ini, to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ‘ss) +1 next_day dari dual; HARI INI NEXT_DAY ————————- ————————- 02-22-08 10:30:30 02-23-08 10:30:30
Tambahkan satu jam. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) + 1 / 24 next_hour dari dual; HARI INI NEXT_HOUR ———————— ———————— 02-22-08 10:30:30 02-22-08 11:30:30
Tambahkan satu menit. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) + 1 / (24 * 60) next_min dari dual; HARI INI NEXT_MIN ———————— ———————— 02-22-08 10:30:30 02-22-08 10:31:30
Tambahkan kedua. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) + 1 / (24 * 60 * 60) next_sec dari dual; HARI INI NEXT_SEC ———————— ———————— 02-22-08 10:30:30 02-22-08 10:30:31
Kurangi sehari. pilih to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ‘ss) hari ini, to_date (’02-22-2008 10:30:30 ‘,’ mm-dd-yyyy HH24: mi: ss ‘) – 1 prev_day dari dual; HARI INI PREV_DAY ————————- ————————- 02-22-08 10:30:30 02-21-08 10:30:30
Kurangi jam. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) – 1 / 24 prev_hour dari dual; HARI INI PREV_HOUR ———————— ———————— 02-22-08 10:30:30 02-22-08 09:30:30
Kurangi menit. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) – 1 / (24 * 60) prev_min dari dual; HARI INI PREV_MIN ———————— ———————— 02-22-08 10:30:30 02-22-08 10:29:30
Kurangi detik. pilih to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ‘ss) hari ini, to_date (’02-22-08 10:30:30 ‘,’ mm-dd-yy HH24: mi: ss ‘) – 1 / (24 * 60 * 60) prev_sec dari dual; HARI INI PREV_SEC ———————— ———————— 02-22-08 10:30:30 02-22-08 10:30:29
//===================================================================
SELECT MENGGUNAKAN IF ELSE PADA ORACLE
SELECT ename, CASE WHEN sal = 1000 THEN 'Minimum wage' WHEN sal > 1000 THEN 'Over paid' ELSE 'Under paid' END AS "Salary Status" FROM emp;
No comments:
Post a Comment