我想根据过期的日期获取数据。
我有这样的数据库
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';
}
但是我只想取过期的和未过期的数据。
请帮忙,谢谢。
使用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数据算法允许您避免计算天数或月份;它知道必要的日历细节。