php - MySQL为输出选择特定日期
问题描述
我正在制作一个粗略的约会计划以取乐。
我有一个页面将显示可用的约会。
我只想显示 30 天后的约会,也就是一个月并且未预订,也就是 user_id = 0。
预订的约会具有与其帐户相关联的 user_id。
我被困在如何告诉 MySQL 只显示日期在今天和从今天起一个月之间的约会。
该页面使用使用 PDO 的 PHP 和 MySQL。
我对 PDO 最满意,这就是我使用它的原因。
我所使用的是 DATE_ADD()、CURDATE() + INTERVAL,以及我在页面上的内容
<?php
//opens database path
$db = new PDO(DB_PATH, DB_LOGIN, DB_PW);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$today = array(date(Y), date(m), date(d));
$result = $db->query("
SELECT *
FROM appt
WHERE DAY(date) < $today[3]
AND MONTH(date)=today[2]+1
ORDER
BY date DESC
, time DESC
");
foreach($result as $row)
{
print "<tr>";
print "<td><input type='checkbox' name='id[]' value=".$row['id']."></td>";
print "<td>".$row['date']."</td>";
print "<td>".$row['time']."</td>";
print "<td>".$row['doctor']."</td>";
print "</tr>";
}
?>
数据库将这样创建
CREATE TABLE appts
(key int unsigned not null auto_increment primary key
, user_id int unsigned
, date date
, time time
, doctor tinytext);
解决方案
如何告诉 MySQL 只显示日期在今天和从今天起一个月之间的约会?
您可以使用 MySQL 日期算术。我想你想要:
SELECT *
FROM appt
WHERE date >= current_date - interval 1 month
AND date < current_date + interval 1 day
ORDER BY date DESC, time DESC
推荐阅读
- activiti - 如何使用java方法在callactivity中添加源和目标
- python - Keras predict_generator 损坏的图像
- java-8 - 坚持使用 Java 8 流
- schema.org - 修复 JobPosting 上的 SDTT 警告:“建议使用值字段。”
- visual-studio - 为什么在 VS2017 中构建解决方案时出现错误
- traefik - Apache 使用 Traefik 的“RedirectMatch”等价物是什么?
- html - mac 与 windows 上的 CSS 动画
- python - python 谷歌云功能解压文件
- node.js - 使用 collection.find() 在 mongodb 中找不到集合的内容
- mysql - 在 WooCommerce 中列出带有订单详细信息的优惠券