Oracle Application Express исламский или персонифицированный упаковщик даты

#oracle #express #date

#Oracle #экспресс #Дата

Вопрос:

Как реализовать Hijri или Persion Date Packer в Oracle apex. Пожалуйста, сообщите нам.

Комментарии:

1. Добро пожаловать в Stack Overflow. Пожалуйста, добавьте краткое описание ваших поисковых / исследовательских усилий, как предлагается.

Ответ №1:

Если вы не можете найти для этого готовое решение, возможно, вам придется создать свое собственное.

Вот несколько советов о том, как вы можете начать генерировать даты в хиджре.

В Oracle SQL вы можете преобразовать григорианский язык в арабский хиджри следующим образом:

 select to_char(sysdate,'DD MONTH YYYY','NLS_CALENDAR=''Arabic Hijrah''') from dual;
  

Итак, если вы хотите создать календарь, вам нужен список дат начала и окончания. В приведенном ниже примере приведен диапазон дат, начиная с 500 дней до и 499 дней после сегодняшнего дня.

 select to_char(the_date, 'dd/mm/yyyy') gdate,
       to_char(the_date, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''') hdate
from ( select sysdate-(rownum-500) the_date from dual connect by level < 1000 )
order by the_date;
  

Используйте вышеуказанный или аналогичный для создания диапазонов дат. Возможно, уменьшить его до работы на месяц или квартал за раз, в зависимости от того, как вы отображаете календарь.

Или получить месяц / год Хиджры:

 select to_char(sysdate, 'mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''') from dual;
  

Затем получите даты за месяц (создайте ранжирование, равное — 40 на сегодняшний день, чтобы убедиться, что у вас есть все даты этого месяца, а затем отфильтруйте по этому месяцу):

 select to_char(the_date, 'dd/mm/yyyy') gdate,
       to_char(the_date, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''') hdate
from ( select sysdate-(rownum-40) the_date from dual connect by level < 80 )
where to_char(the_date, 'mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''') =
         to_char(sysdate, 'mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''')
order by the_date;