php - 用于检查一个日期是否接近当前日期的 MySQL 查询

标签 php mysql date datetime

我有两列(日期字段、时间字段),它们将datetime 存储在字符串中,第一步是将它们组合起来两个字段,以便我可以将它们与当前日期进行比较(我不确定我是否做对了)。第二步是编写查询,仅当从这两列中获取的日期接近当前日期时才应选择记录。该日期应介于当前日期和当前日期前 4 小时之间,因为在那之后,如果不满足某些条件,所有这些记录都会发生一些事情。

日期和时间列的格式:

event_date = 'yyyy/MM/dd'             
event_time = 'HH:mm'

所以这是我的查询:

SELECT * 
FROM  `events` 
WHERE DATE_SUB( NOW( ) , INTERVAL 4 HOUR )
< ADDTIME( event_date, event_time ) 

也许我应该首先将这些字符串转换为日期,然后再使用它们或其他东西?总而言之,如果我有这些日期的一些数据,例如:

1. 2017-02-26 10:00                              
2. 2017-02-26 11:00
3. 2017-02-27 10:00

当前日期时间是:2017-02-26 06:00 .在这种情况下,我只会得到 1 条记录,当一小时过去或 2017-02-26 07:00 时,我会得到 2 条记录

最佳答案

如果 event_date 是事件的日期,event_time 是时间,您可以使用 timestamp mysql 函数将它们合并:

select event_date, event_time, timestamp(event_date, event_time)
from events;

但实际将日期和时间信息存储在单个字段中通常是个好主意,例如event_datetime

然后你可以这样写你的查询:

select *
from
  events
where
  event_datetime between now() and now() + interval 4 hour;

这将返回从现在开始到 future 4 小时后的所有事件。或者,如果您想要过去 4 小时内的事件,请尝试:

event_datetime between now() - interval 4 hour and now();

关于php - 用于检查一个日期是否接近当前日期的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42461763/

相关文章:

mysql - Excel 无法将 mysql 中的日期识别为日期

php - 30 个唯一变量的 SQL 查询

php - MySQL Workbench 6.0 - 不正确的语法模板

php - 通过公网IP地址连接MySQL数据库?

PHP/MySQL 到 PDO?

ruby-on-rails - Ruby表达式 '-'后留空格的效果

php - 离线访问。验证访问 token ?

php - 如何检查是否为 PHP 安装了 memcache 或 memcached?

PHP 使用 php 日期检查数据库日期字段

MySQL : Select count group by day with custom starting and ending hours for a day