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

Cara menentukan minggu seperempat dalam kueri Oracle

Ini akan mendapatkan minggu (Minggu - Sabtu) kuartal:

SELECT TO_CHAR( SYSDATE, 'YYYY-"Q"Q-"W"' )
     || ( 7 + TRUNC( SYSDATE + 1, 'IW' ) - TRUNC( TRUNC( SYSDATE, 'Q' ) + 1, 'IW' ) ) / 7;
         AS "Current Time"
FROM DUAL

Penjelasan :

  • Anda dapat menemukan hari Minggu yang tepat atau tepat sebelum tanggal tertentu menggunakan NEXT_DAY( TRUNC( date_value ), 'SUNDAY' ) - 7 (yang bergantung pada NLS_TERRITORY setting) atau TRUNC( date_value + 1, 'IW' ) - 1 (yang lebih pendek dan tidak bergantung pada pengaturan apa pun).
  • TRUNC( date_value, 'Q' ) memberikan tanggal hari pertama kuartal yang berisi value tanggal (yaitu 1 Januari, 1 April, 1 Juli, atau 1 Oktober).
  • Menggabungkan keduanya, hari Minggu pada-atau-tepat-sebelum hari pertama kuartal diberikan oleh TRUNC( TRUNC( date_value, 'Q' ) + 1, 'IW' ) - 1
  • Oleh karena itu, jumlah hari antara hari Minggu pada-atau-tepat-sebelum awal kuartal dan hari Minggu pada-atau-tepat-sebelum tanggal tertentu adalah:( TRUNC( date_value + 1, 'IW' ) - 1 ) - ( TRUNC( TRUNC( date_value, 'Q' ) + 1, 'IW' ) - 1 ) - yang dapat disederhanakan dengan membatalkan -1 istilah.
  • Perbedaan jumlah minggu hanyalah angka yang dibagi dengan 7 (tetapi memberikan nilai yang diindeks 0 dan Anda ingin angka minggu dari kuartal tersebut diindeks 1; Anda menambahkan 1 minggu ke hasil atau, sebelum melakukan pembagian, tambahkan 7 hari).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLS-00402:alias diperlukan dalam SELECT daftar kursor untuk menghindari duplikat nama kolom

  2. Kesalahan Oracle ORA-12154 pada IIS lokal, tetapi tidak dengan Server Pengembangan Visual Studio

  3. Format Tanggal SQL

  4. Pemeran yang ditentukan tidak valid saat mengisi DataTable dari OracleDataAdapter.Fill()

  5. Pisahkan File Teks/CSV Besar menjadi Beberapa File di PL SQL