我正在开发一个药店项目,但我遇到了确定过期药品总数的问题。从数据库我有:
+----+----------+--------+------------+
| id | drug_nam | amount | exp |
+----+----------+--------+------------+
| 1 | M and T | 200 | 04/15/2016 |
| 2 | VIT C | 20 | 05/25/2016 |
| 3 | Pana | 10 | 01/03/2016 |
| 4 | Lonat | 1200 | 08/25/2017 |
| 5 | ProC | 100 | 05/25/2017 |
+----+----------+--------+------------+
我在这里需要的是一行 PHP 脚本,它可以计算 DB 中过期药物的数量。使用 <?php $d = date('m/d/Y'); ?>
从数据库中确定。
我使用了下面的代码,但它只计算 2
<?php
$d = date('m/d/Y');
$result = mysqli_query($conn, "SELECT count(exp) FROM products where exp < $d ");
while($row = mysqli_fetch_array($result))
{
echo $row['count(exp)'];
}
最佳答案
如果您想按日期而不是按字符串进行过滤,则应将字符串日期表示形式转换为日期值。 此查询应该有效:
SELECT count(exp) FROM products where STR_TO_DATE(exp, '%d/%m/%Y') < $d
主要缺点是mysql在这种情况下不能使用索引。解决方案之一是将您的列从 varchar(50) 转换为 DATETIME。在这种情况下,您可以使用原始查询。
关于php - 如何从 php 中的 db 确定今天日期以下的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214544/