php - 只选择开始和结束时间和日期之间的记录
问题描述
我正在做一个学校项目,我必须制作一个待办事项网络应用程序。现在我有一个小问题。我需要获取超时的记录(想想剩下的整个任务的 20%)。现在我正在寻找 php 或 sql 语句中的解决方案,用它我只能检索那些记录。
我尝试了很多陈述,但我无法让一个工作。
SELECT * FROM tasks
WHERE user_id='$user_id'
AND '$currentDate' BETWEEN start_date AND end_date
以上是使用日期而不是时间。
所以现在我需要一个语句或函数,只检索几乎完成的任务。我添加了数据库和应用程序的屏幕截图以稍微澄清一下。
我希望有人能帮助我。(这是我第一次使用stackoverflow,如果我做错了什么,很抱歉)
解决方案
首先,您不应该使用常量、日期或其他方式来修改您的查询。所以,使用now()
.
其次,将日期/时间组合成一列
第三,您似乎想要and
:
WHERE user_id = ? AND
NOW() >= start_datetime AND
NOW() < end_datetime
如果要将日期/时间存储在单独的列中,则可以将它们组合起来:
WHERE user_id = ? AND
NOW() >= ADDTIME(CAST(start_date as DATETIME), start_time) AND
NOW() < ADDTIME(CAST(end_date as DATETIME), end_time)
推荐阅读
- python-3.x - remove() 不删除 python 列表中的元素
- python-3.x - df.explode() 无助于解压熊猫中的列值
- python - tkinter simpledialog 将焦点放在提交时调用它的窗口的父级
- nullpointerexception - Android Studio JavaDoc 错误引发 NullPointerException
- php - 在php中内爆数组数组
- wordpress - Wordpress:无法连接到 wp-admin(localhost 无法提供安全连接?)
- xml - 从 one2many XML Odoo 字段中的字段中删除或隐藏列
- google-api - 我可以在 Google People API 和 Task API 中创建扩展属性吗?
- carousel - 轮播滑动导致白屏
- python - 使用 Selenium 检查 AngularJS 复选框