Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Buat Tampilan dengan 365 hari

Tampilan sederhana ini akan melakukannya:

create or replace view year_days as
select trunc(sysdate, 'YYYY') + (level-1) as the_day
from dual
connect by level <= to_number(to_char(last_day(add_months(trunc(sysdate, 'YYYY'),11)), 'DDD'))
/

Seperti ini:

SQL> select * from year_days;

THE_DAY
---------
01-JAN-11
02-JAN-11
03-JAN-11
04-JAN-11
05-JAN-11
06-JAN-11
07-JAN-11
08-JAN-11
09-JAN-11
10-JAN-11
11-JAN-11

...

20-DEC-11
21-DEC-11
22-DEC-11
23-DEC-11
24-DEC-11
25-DEC-11
26-DEC-11
27-DEC-11
28-DEC-11
29-DEC-11
30-DEC-11
31-DEC-11

365 rows selected.

SQL> 

Tanggal dihasilkan dengan menerapkan beberapa fungsi tanggal Oracle:

  • trunc(sysdate, 'yyyy') memberi kita tanggal satu Januari untuk tahun ini
  • add_months(x, 11) memberi kita awal Desember
  • last_day(x) memberi kita tanggal tiga puluh satu Desember
  • to_char(x, 'DDD') memberi kita nomor tiga puluh satu Desember, 365 tahun ini dan 366 berikutnya.
  • Angka terakhir ini memberikan batas atas untuk generator baris CONNECT BY LEVEL <= X


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mengakses Oracle dari Python?

  2. pengidentifikasi oracle hibernasi terlalu panjang ORA-00972

  3. Codeigniter dan konstanta Oracle tidak terdefinisi:OCI_COMMIT_ON_SUCCESS

  4. Cara mengulang kolom di kursor Oracle pl/sql

  5. Menghitung jam layanan yang berlalu untuk tiket terbuka (Oracle SQL)