我正在尝试为“汽车维修店”制作应用程序。 在MySQL表中我有
每辆进行维护的车辆必须在每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)”;“但我的方法不是很好......
答案 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
;