PHP和MySQL - 显示某些数值之间的列内容

时间:2013-04-12 21:03:50

标签: php mysql

我是MySQL和PHP的新手,但想知道是否有人可以帮助我完成我为老板做的一个小项目。

我有一个SQL数据库(MyDB)和一个带有两列的表(mytable) - 第一列(索引)是1-10的自动递增整数,第二列(日期)有不同的日期和时间戳格式为Year-month-day time 2013-04-12 1326

我正在尝试创建一个简单的PHP页面,首先获取当前日期(足够简单)然后查看表格并显示昨天日期内的行数。例如,如果我有3行2013-04-11 XXXX和2行2013-04-12 XXXX(今天是2013年4月12日),页面将显示3。 (时间并不重要但我们无法将其从表中删除,因为它是由其他员工的一个程序自动创建的,他拒绝改变它。)

到目前为止,我已经拥有了我的php页面,完成了与DB的连接并定义了两个变量:

$startdate = date('Y'."-".'n'."-".'d'." "."0000");
$enddate = date('Y'."-".'n'."-".'d'." "."2359");

由于时间戳无关紧要,我已经去了变量的最小值/最大值。我意识到这只会给出当前的日期,试图找出如何让它将前一天显示为变量中的日期。

现在我正在尝试创建一个sql查询,它将计算日期字段在startdate和enddate变量(-1天)内的行数,但不太确定从哪里开始或看起来如何。然后我需要在PHP中将其输出为变量,以便稍后在页面中回显它。

任何人都能指出我正确的方向吗?希望这一切都有意义。

1 个答案:

答案 0 :(得分:0)

您可以编写一个没有参数的查询来执行此操作(如果它始终只是昨天)。

SELECT * FROM <table>
WHERE DATE_FORMAT(<date column>,'%j-%Y') = DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 DAY), '%j-%Y');

where子句中的日期函数可能不是超级棒的性能