0

私はMySQLとdb全般に非常に慣れていません。

私が持っているテーブルがありますdate_of_test(test_frequency可能な値は 3,6,12)。

future_test計算された日付から派生したフィールドと、3、6、12 (月) のいずれかdate_of_testの値を持つフィールドが必要です。test_frequency

これを達成する方法がわかりません。誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

0

私のSQLでDATE_ADD()関数を試してください

元:

 SELECT '2008-12-31 23:59:59' + INTERVAL 1 MONTH
于 2012-10-09T11:57:35.317 に答える
0
alter table gypsum add column future_test (datetime);

update gypsum
  set future_test = date_add(date_of_test, interval test_frequency MONTH);

コメントで指摘されているように、データベースで値を計算することは多くの場合、良い考えではありません。

date_or_test、test_frequency を更新するたび、または新しい値を挿入するたびに、計算を再起動する必要があります...

専用のビューを作成した方が良いかもしれません

CREATE OR REPLACE VIEW gypsumWithFuture AS
(SELECT
  id, 
  date_of_test, 
  test_frequency, 
  DATE_ADD(date_of_test, interval test_frequency MONTH) AS future_test
 FROM gypsum)

または、アプリケーションのコードで計算を行う (ある場合)。幅広い言語に DateTime 関数があり、MySQL DATE_ADDと同じことができます。

于 2012-10-09T11:59:28.830 に答える