【问题标题】:PHP/MYSQL get tomorrow records fromPHP/MYSQL 获取明天的记录
【发布时间】:2018-06-10 18:34:01
【问题描述】:

我有一个 varchar 字段包含一个 timestamp 值,我想获取明天的记录。

这是我的代码,你可以看到:

$tomorrow = strtotime("1+ day");
SELECT * FROM tasks WHERE task_accomplish_date > $tomorrow

但查询不正确

提前感谢您的帮助

【问题讨论】:

  • 注+,应该是$tomorrow = strtotime("+1 day");

标签: php codeigniter mysqli timestamp strtotime


【解决方案1】:

应该是这样的:

$tomorrow = strtotime("+1 day");

/* this will select all record before tomorrow*/
SELECT * FROM tasks WHERE task_accomplish_date < $tomorrow;

/* this will select all record after tomorrow*/
SELECT * FROM tasks WHERE task_accomplish_date > $tomorrow;

http://php.net/manual/en/function.strtotime.php

【讨论】:

    【解决方案2】:
    SELECT * FROM tasks WHERE task_accomplish_date >  NOW() + INTERVAL 1 DAY
    

    【讨论】:

      【解决方案3】:

      您应该能够在 MySQL 查询中完成所有这些操作

      SELECT * 
          FROM `tasks` 
          WHERE DATE(`task_accomplish_date`) = DATE(NOW() + INTERVAL 1 DAY)
      

      这会将您的 task_accomplish_date 转换为日期值,并查找该日期等于今天 + 1 天(明天)的记录。这不会给你从今天或以后两天的记录,只是明天。如果你想要明天和明天之后的所有记录,你会使用

      SELECT * 
          FROM `tasks` 
          WHERE DATE(`task_accomplish_date`) >= DATE(NOW() + INTERVAL 1 DAY)
      

      如果您要存储时间戳,则这些只关心时间戳的日期部分,而不关心时间戳的时间部分。如果您也关心时间部分,则可以在 WHERE 子句中从 = 的两侧删除 DATE()

      【讨论】:

      • $query = array("task_accomplish_date strtotime("今天午夜"));我正在使用 Codeigniter
      猜你喜欢
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      相关资源
      最近更新 更多