Есть ли способ хранить арабские даты с Postgres? - PullRequest
8 голосов
/ 14 октября 2011

Я разработчик PHP и работаю над проектом, в котором мне нужно хранить арабские даты в моей базе данных.

Однако я создал приложение и встроил в него арабский календарь JavaScript.

Теперь, когда я выбираю дату, например, 12/02/1442, и нажимаю кнопку сохранения, появляется следующая ошибка:

Year Out Of Range

Ответы [ 3 ]

6 голосов
/ 14 октября 2011

Эти даты (арабский, джалали, ...) обычно имеют проблемы с серверами SQL. По моему опыту, есть 3 способа справиться с этим:

  1. Использование символов типов для хранения дат в полях в любом произвольном формате. (Проблема в том, что: манипулирование, арифметика, сортировка, ... которые трудно реализовать)

  2. Использование целое число или фиксированный символ тип для хранения дат, например 14420101 для 1/1/1442. (То же, что и первый, но сортировка решена)

  3. Используя date или timestamp type для хранения, вы должны конвертировать даты в стандартный формат даты перед сохранением в базе данных, а когда вы читаете их, конвертировать их назад. Этот метод требует внешнего языка программирования для обработки (обычно есть внешний язык) . Или вы можете написать внутренние функции в вашей базе данных.

Просто сохраните даты, тогда достаточно методов 1 и 2.

В противном случае я предлагаю третий подход, потому что вы можете использовать предопределенные функции date и time, которые существуют на серверах баз данных или языках программирования.

Например, вы можете легко использовать date_diff() в PHP или использовать внутренние функции postgres для дат.

1 голос
/ 21 октября 2011

Я думаю, что это было бы идеальным приложением для написания пользовательских типов данных. Может быть, кто-то уже сделал это, или вы могли бы начать.

0 голосов
/ 14 октября 2011

PostgreSQL поддерживает ввод и вывод дат и временных отметок в качестве юлианского дня. Два соответствующих раздела в руководстве:

Это может помочь, если вы хотите выполнять вычисления в базе данных. Если это не проблема, просто сохраните даты, как подсказал Масуд М. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...