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