Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да определите седмица от тримесечие в заявка на Oracle

Това ще получи седмицата (неделя - събота) на тримесечието:

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

Обяснение :

  • Можете да намерите неделята, която е била на или непосредствено преди дадена дата, като използвате NEXT_DAY( TRUNC( date_value), 'НЕДЕЛЯ') - 7 (което зависи от NLS_TERRITORY настройка) или TRUNC( date_value + 1, 'IW' ) - 1 (което е по-кратко и не зависи от никакви настройки).
  • TRUNC( стойност_на_дата, 'Q' ) дава датата на първия ден от тримесечието, съдържаща стойността дата (т.е. 1 януари, 1 април, 1 юли или 1 октомври).
  • Събирайки двете заедно, неделята на или непосредствено преди първия ден от тримесечието се дава от TRUNC( TRUNC( date_value, 'Q' ) + 1, 'IW' ) - 1
  • Следователно броят на дните между неделята на или точно преди началото на тримесечието и неделята на или точно преди дадена дата е:( TRUNC( date_value + 1, ' IW' ) - 1 ) - ( TRUNC( TRUNC( стойност_на_дата, 'Q' ) + 1, 'IW' ) - 1 ) - което може да бъде опростено чрез отмяна на -1 условия.
  • Разликата в броя на седмиците е само това число, разделено на 7 (но дава индексирана с 0 стойност и искате номерът на седмицата на тримесечието да бъде индексиран с 1; добавяте или 1 седмица към резултата, или преди извършвайки разделянето, добавете 7 дни).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-29278:SMTP преходна грешка:Услугата не е налична при изпълнение на UTL_MAIL

  2. Предаване на съхранена процедура от SQL Server към ORACLE свързан сървър

  3. Как да получите файл от BLOB в Oracle?

  4. Oracle:LIKE, където всяка част от един низ съвпада с която и да е част от друг низ

  5. Принудително външният SELECT да се провали, ако вътрешният SELECT съдържа невалиден идентификатор