php - 如何从 php 中的 db 确定今天日期以下的日期

标签 php mysql

我正在开发一个药店项目,但我遇到了确定过期药品总数的问题。从数据库我有:

+----+----------+--------+------------+
| 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/

相关文章:

mysql - t2.micro EC2 实例运行太慢一段时间后恢复正常

php - Htaccess 使用 FastCGI 重写

PHP 搜索显示与查询完全不同的重复结果

php - HMVC路由中的歧义

java - REST API,Angularjs 前端,后端 - Java 与 PHP?

mysql - 奇怪的 mysql select 循环与 ;但不是\G

php - 查询 MySQL 当前和当天的旧数据,计算变化

php - 使用 .htaccess 将 .ics 文件作为 .php 文件运行

mysql - 删除 JSON 键中的前导和尾随空格

php - 在 PHP 中选择 WHERE x = $array[index]?