我想根据过期的日期获取数据。
我有这样的数据库
Equipment
Purchase Date
Expiry Date
Laptop
2015-07-15
2016-07-15
Mobile
2012-07-15
2013-07-15
Desktop
2011-07-15
2012-07-15
现在我想获取已过期的数据,如果购买日期距离当前日期不到365天,这意味着设备未过期,否则已过期。那么,如何获取过期的数据数据以及如何获取未过期的数据数据。
我设法计算日期并打印出这样的条件。
$purchasedate = strtotime ($row['purchasedate']);
$todayDate = strtotime (date("j-m-Y"));
$timeDiff = abs($todayDate - $supplydate1);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
if ($numberDays > 365)
{
$expiry = 'Warranty Expired';
} else {
$expiry = 'Under Warranty';
}
但我只想获取已过期且未过期的数据。
请帮助,谢谢。
答案 0 :(得分:0)
使用MySQL日期算术。
SELECT equipment,
CASE WHEN expiryDate > CURDATE() THEN 'Current'
ELSE 'Expired' END
FROM table
如果您只想显示过期的行,请将此WHERE
子句附加到查询中。
WHERE expiryDate <= CURDATE()
使用日期算术可以做很多很酷的事情。例如,要查找从现在到现在两个月之间到期的所有行,请使用此WHERE
子句。
WHERE expiryDate > CURDATE()
AND expiryDate <= CURDATE() + INTERVAL 2 MONTH
同样,如果您想查看购买日期是一年或更长时间的行,您可以执行此操作。
WHERE purchaseDate <= CURDATE() 1 INTERVAL 1 YEAR
这种SQL数据运算可以让您无需计算数天或数月;它知道必要的日历细节。