在mysql表中计算一个字段

时间:2012-10-09 11:52:57

标签: mysql

我是MySQL和db的新手。

我有一张表格,其中date_of_testtest_frequency(可能的值3,6,12)。

我需要一个字段future_test,其中的计算日期派生自date_of_testtest_frequency中的值为3,6,12(月)。< / p>

我不知道如何实现这一点,有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

在我的sql中尝试DATE_ADD()函数

例如:

 SELECT '2008-12-31 23:59:59' + INTERVAL 1 MONTH

答案 1 :(得分: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)

或在您的应用程序代码中进行计算(如果有的话)。各种各样的langagues都有DateTime函数,它可以和MySQL DATE_ADD一样。