6

タイプの列を持つ mysql テーブルがありますdate
非グレゴリオ暦の日付をこの列に格納します (つまり、ジャラリ日付)。Jalali 日付を
使用して保存することでこれをテストしましたが、エラーは発生しませんでした。グレゴリオ暦以外の日付を型 に格納することは良い考えですか? そうでない場合; どちらが良いですか?またはタイムスタンプとして、または何か他のものとして保存しますか?phpMyadmin
date
varchartimestampInt

4

4 に答える 4

6

グレゴリオ暦以外の日付を日付型に格納することは良い考えですか?

いいえ。ある暦体系の有効な日付が別の暦に存在しないことを除けば、DATE型指定された列で動作する関数は正しく動作しない場合があります。問題はデータを保存するだけではなく、このデータを処理して、たとえば と比較する必要がありますCURDATE()

それを varchar またはタイムスタンプまたはタイムスタンプとして Int または何か他のものとして保存しますか?

適切なフォーマットを選択する場合は、月と日に 2 桁を使用し、年に静的な桁数を使用するか、文字列タイプを使用するか、CHARまたはVARCHAR問題ありません。テーマを相互に比較することは単なる字句比較であり、関数またはプロシージャを記述して機能を拡張することもできます。

前者は特定の時間を表し、後者はカレンダーの特定のエントリを表すため、質問を選択TIMESTAMPまたは変更します。DATE日付の横に時間を置きたい場合でも、意味は異なります。夏時間の変更などの問題について考える必要があります。これにより、カレンダー エントリ (DATE) を好む人もいれば、1970 年 1 月 1 日からの経過秒数 (TIMESTAMP) を好む人もいます。たとえば1393-06-30 23:30:00、現在のイラン政府の法律に基づいて、Hijri Shamsi カレンダーには 2 つのタイムスタンプがあります。

于 2014-11-03T20:54:36.037 に答える