#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;