每6个月查询一次结果(显示7天前的结果)

时间:2018-03-13 03:43:58

标签: mysql

我正在尝试为“汽车维修店”制作应用程序。 在MySQL表中我有

  1. ID
  2. CAR_PLATE
  3. MAINTENANCE_DATE(时间戳)
  4. 每辆进行维护的车辆必须在每6个月后再次进行新检查。 当汽车第一次到达时,日期将在“maintenance_date”字段中加上时间戳。

    问题是...... 如何在新检查(维修)期间显示哪辆车(车牌)(比如7天)?

    例如

    CAR_PLATE = XYXYXY,   MAINTENANCE_DATE = 1.1.2018

    25.6 我应该得到一个与新维护日期(d / m)相同的车牌(正好在6个月之后),它将一直显示,直到维护日过去。

    P.S。

    我试过“maintenance_date> DATE_SUB(CURRENT_TIMESTAMP,INTERVAL 7 DAY)”;“但我的方法不是很好......

2 个答案:

答案 0 :(得分:2)

以下代码对您有所帮助。

SELECT CAR_PLATE 
FROM table_name 
WHERE DATE_ADD(MAINTENANCE_DATE, INTERVAL 6 MONTH) 
BETWEEN CURDATE() AND (DATE_ADD( CURDATE(), INTERVAL 7 DAY));

如果您需要时间进行比较,只需替换NOW()而不是CURDATE()。请检查以下代码:

SELECT CAR_PLATE 
FROM table_name 
WHERE DATE_ADD(MAINTENANCE_DATE, INTERVAL 6 MONTH) 
BETWEEN NOW() AND (DATE_ADD( NOW(), INTERVAL 7 DAY));

我附上了我的SQLfiddle。谢谢!

答案 1 :(得分:0)

尝试以下简单的方法来选择天数差异在0到7之间(将来)的记录。

SELECT ID, CAR_PLATE, MAINTENANCE_DATE
  FROM <Table>
 WHERE TIMESTAMPDIFF(DAY, NOW(), MAINTENANCE_DATE) BETWEEN 0 AND 7
;