2017-01-29 13 views
0

私はデータベースを作るためにphpmyadmin/MySQLを使っています。'duration'属性にはどのようなデータ型を使用する必要がありますか?

飛行機/バス/列車予約システム用です。

私は時間データ型である 'depart_time'属性を持っています。同じ表で私は 'duration'属性を持っています。後で、この期間属性(列車/バス/飛行機に応じて)で乗算を行う必要があります。

私の質問はです。この持続時間属性にはどのようなデータタイプが最適でしょうか?

小数点型を使用することを考えましたが、その値が正確に時間を表すことはありません(たとえば、1.30は1時間半を表すことはなく、1.50である必要があります) 。 また、このフィールドに時刻データ型を使用することも考えましたが、乗算が可能かどうかはわかりませんでしたか?

私は時間データ型の乗算についてグーグルで調べても助けが見つかりませんでした。

これがうまくいけば、もう情報が必要な場合は、コメントでお気軽にお問い合わせください。

ありがとうございます!

+0

期間の値に何が乗算されますか? –

+0

https://dev.mysql.com/doc/refman/5.7/en/time.html –

+0

@UsmanRanaの数字は2,3,4などです –

答えて

0

私はおそらくだろう、その位置にあった場合は、次のいずれか秒で

  1. 。それ以上の精度が必要と思われることはありません。
  2. P1Dを1日、P1W2DT3Hを1週間、2日、3時間などの文字列にします。これは、多くの図書館で使用されている標準的な形式で、実際には何かが実際に1日かかっている状況によく対応しますが、うるう時間のある日です。

ほとんどの場合、秒を使用するだけでも問題ありません。

0

intを使用し、最小の単位で記録します。たとえば、正確な精度が必要な場合は、1時間30分を保存します。表示用にその値をフォーマットすることは、データベースのビジネスではなく、プレゼンテーションロジックです。

0

私は、秒または分(最小の精度)としてデータベースに表現します。ユーザへの表示は、フロントエンドで動的に実行する必要があります(例:分(1分、30分180分)、時間(0.1h、1h、3h、3.0h)、日(0.5d、1d) 42min)。

あなたは、この別のを維持する必要があります。だから私は秒を使用することをお勧めします。

0

私はこれを行うつもりですか解決してきました。

代わりにデータベース内でそれをやっての。I

私はテーブルから情報を取り出し、データをint/datetime.deltatimeに変換して乗算を実行しました。

私はそれがバス/列車/飛行機かどうかによってそのデータを返すだけでした。

0

お金に関係しない乗数の場合は、単にFLOATを使用します。

次に、数秒で作業します(必要に応じて分)。それはINT UNSIGNEDにある可能性があります。

適切なDATETIMEを使用して、秒をhh:mmに変換するか、任意の出力に変換します。注:内部形式は、表示形式と同じである必要はありません。

関連する問題