2011-10-14 16 views
8

私はPHP開発者です。データベースにアラビア語の日付を格納する必要があるプロジェクトに取り組んでいます。アラビア語の日付をPostgresに保存する方法はありますか?

しかし、私はアプリケーションを作成し、JavaScriptアラビアカレンダーを埋め込んでいます。今

私は日付を選択し、例えば12/02/1442、及び保存ボタンを押すと、それは私に次のエラーを与える:

Year Out Of Range 
+1

さらに詳しい情報 - コード、DBスキーマ、SQL文などを提供してください。 –

答えて

6

これらの日付(アラビア語、ジャラリ、...)は、通常はSQLに問題がありますサーバー。 文字任意のカスタム形式でフィールドに日付を格納するためのタイプを使用して

  1. :私の経験では、それを処理するための3つの方法があります。

  2. 1/1/1442ため14420101のように、日付を格納するため整数固定文字タイプを使用する:(、、、操作、算術ソート...彼らは実装が困難である問題があります)。格納するためのまたはタイムスタンプタイプを使用して

  3. (最初のものと同じですが、ソートが解決される)、あなたはデータベースに格納する前に、標準の日付形式に日付を変換する必要があり、あなたはそれらを読んでいるとき、それらを元に戻す。このメソッドは、(通常は外部言語があります)を処理する外部プログラミング言語を必要とします。または、データベースに内部関数を記述することもできます。

ちょうど日付を保存すると、方法1と2で十分です。

それ以外の場合は、datetimeデータベースサーバーまたはプログラミング言語に存在する事前定義された関数を使用できるため、3番目の方法をお勧めします。

たとえば、date_diff()をPHPで簡単に使用したり、日付用のpostgres内部関数を使用することができます。

+0

2)について:整数が14420212としてエンコードされていると、ソートがずっと簡単になります。 –

0

PostgreSQLは、日付とタイムスタンプの入力と出力をユリウス日としてサポートしています。マニュアルの適切な2つのセクション:

データベースで計算を行いたい場合に役立つかもしれません。これは問題ではない場合は、としてMasoud M.と提出してください。

1

これは、カスタムデータ型を記述するのに最適なアプリケーションだと思います。たぶん誰かがすでにそれをやったことがあるかもしれません。

関連する問題