MySQL将列中的日期与今天进行比较

时间:2016-04-20 12:09:57

标签: php mysql

我有一个大约6000条记录的表,其中一列中有一个日期列,表示查询的截止日期。我需要将列中的日期与今天的日期进行比较,我理解这样做的目的是:

SELECT DATEDIFF(DATE_TO_COMPARE, CURDATE());

但是,然后我又想要设置另一个日期差异。因此,对于每个日期,我需要进行比较,在列difference_in_days中插入差异,迭代到下一个日期并重复。

每当使用AJAX和PHP / PDO加载我网站上的某个页面时,我也会调用此函数

我的SQL知识不是那么广泛,我怎样才能做到这一点。

表有点像

    field 1, field2, field 3, date_to_compare, field 4, field 5, difference_in_days       
    |       |       |       | 2016-04-20      |        |       |                   |
    |       |       |       | 2016-04-25      |        |       |                   |
    |       |       |       | 2016-04-22      |        |       |                   |
    |       |       |       | 2016-04-27      |        |       |                   |
    |       |       |       | 2016-04-29      |        |       |                   |

1 个答案:

答案 0 :(得分:3)

喜欢你想要更新吗?

UPDATE table_name
SET difference_in_days = DATEDIFF(date_to_compare, CURDATE());

这会将表格中的每条记录更新为当前日期的差异。

,如果您希望该列保持相关性,则需要您每天运行更新。

替代方法:

如果您没有对此进行过多次查询,最好使用视图,每次查询时都会实时更新。

CREATE VIEW diff_view_name AS
SELECT *, DATEDIFF(date_to_compare, CURDATE()) AS difference_in_days
FROM table_name;

然后你可以使用:

查询它
SELECT * FROM diff_view_name;