我有一个大约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 | | | |
答案 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;