以下讨论基于mysql
1、增加一个字段,保存点击暂时取消按钮时的时间
设增加的字段为“暂时取消”则
SELECT * FROM tbl_name where subdate(now(),INTERVAL 14 DAY)>if(暂时取消>最后访问时间,暂时取消,最后访问时间)
仅仅是设一个标志是不行的
2、借助原字段,用年度来附加日期差
当点击“暂时取消”时,计算出“最后访问时间”与当前时间相差的天数,并将该天数当作年数加到最后访问时间”上,查询时取出增加的年数作为参数调整“最后访问时间”
SELECT * FROM tbl_name where subdate(now(),INTERVAL 14 DAY)>subdate(adddate(最后访问时间,INTERVAL YEAR(最后访问时间)-YEAR(now()) DAY), INTERVAL YEAR(最后访问时间)-YEAR(now()) YEAR)
这样可以不增加字段而充分利用原字段。
存在一个小问题:计算是基于当前时间的,因此跨年份时就不准确了。