1

アプリケーションのデータベースで契約期間を取得したいと考えています。Rails 3でpostgresを使用しています。期間は契約期間です。入力の例としては、5 年、3 年半、2 年 3 か月などがあります。私は通常、期間を年と月でキャプチャできるようにしたいと考えています。これを行うには、どのデータ型を使用すればよいですか?

4

3 に答える 3

4

Postgresql はintervalデータ型をサポートしています。

http://www.postgresql.org/docs/9.1/static/datatype-datetime.html

于 2012-06-23T00:18:42.010 に答える
2

月のみを(整数として)キャプチャするか、2つの別々のフィールドを用意する必要があると思います。年と月に1つずつ。0から11のみが許容値になるように、ドロップダウンメニューとして月を実装することができます。

最後のオプションは、日時よりもはるかに正確な日時を使用することです。そのため、これにはお勧めしません。

于 2012-05-17T19:04:08.160 に答える
2

start_date と end_date という 2 つの日時属性を使用します。これにより、年/月、日、分、秒など、必要に応じて契約期間を表現する方法を後で決定できます。

term と呼ばれる疑似属性を定義できます。

class Contract < ActiveRecord::Base
  def term
    return self.end_date - self.start_date
  end
end

term は数秒で、簡単な計算を行って、月、年、月などを返すことができます。また、DateHelper を使用することもできます。つまり、

distance_of_time_in_words(@contract.start_date,@contract.end_date)

「1 年」、「3 年」、「約 1 年」などの概算文字列を出力します。

于 2012-05-17T19:16:56.427 に答える