0

一般来说,我对 MySQL 和 db 很陌生。

我有一张桌子,我有date_of_testtest_frequency(可能的值 3、6、12)。

我需要有一个字段future_test,其中包含计算日期,其中date_of_test的值test_frequency是 3、6、12(月)。

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

4

2 回答 2

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 回答
0

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

前任:

 SELECT '2008-12-31 23:59:59' + INTERVAL 1 MONTH
于 2012-10-09T11:57:35.317 回答