私はMySQLとdb全般に非常に慣れていません。
私が持っているテーブルがありますdate_of_test
(test_frequency
可能な値は 3,6,12)。
future_test
計算された日付から派生したフィールドと、3、6、12 (月) のいずれかdate_of_test
の値を持つフィールドが必要です。test_frequency
これを達成する方法がわかりません。誰かが私を正しい方向に向けることができますか?
私はMySQLとdb全般に非常に慣れていません。
私が持っているテーブルがありますdate_of_test
(test_frequency
可能な値は 3,6,12)。
future_test
計算された日付から派生したフィールドと、3、6、12 (月) のいずれかdate_of_test
の値を持つフィールドが必要です。test_frequency
これを達成する方法がわかりません。誰かが私を正しい方向に向けることができますか?
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と同じことができます。