【问题标题】:Codeigniter Date comparison - Greater than or Less than datetime field not workingCodeigniter 日期比较 - 大于或小于日期时间字段不起作用
【发布时间】:2019-07-15 07:04:33
【问题描述】:

我在 codeigniter 中有以下查询来查找日期时间字段超过 24 小时的任何数据。这是我的尝试...

$this->db->where('date_reg >', 'DATE_SUB(NOW(), INTERVAL 1 DAY)');

但是上面的查询不起作用!

简而言之,返回 date_reg 超过 24 小时的所有行...

我不能在 codeigniter 中使用查询! 这是date_reg字段的格式....2019-02-19 08:00:00

我该怎么做?

【问题讨论】:

  • 不重复,我的字段是日期时间类型。这是很大的不同
  • 你在“date_reg”中的日期格式是什么,你可以添加格式吗
  • 这里是格式....2019-02-19 08:00:00
  • 希望你能以echo date('Y-m-d H:i:s', strtotime('-1 day', strtotime(date('Y-m-d H:i:s')))); 的身份做到这一点?

标签: mysql codeigniter datetime


【解决方案1】:

试试这个;

$this->db->query('SELECT * FROM your_table WHERE date_reg >= now() + INTERVAL 1 DAY;');

【讨论】:

  • 我不能使用查询,因为我还有很多其他信息。它应该是 codeigniter 风格...
  • 好的,试试。 $this->db->where('date_reg >=', 'NOW() + INTERVAL 1 DAY');
  • $this->db->where('date_reg >=', DATE_SUB(NOW(), INTERVAL 24 HOUR)');
  • 你能试试最后一个吗?
【解决方案2】:

试试这个:

$this->db->select('*');
$this->db->from('your_table');
$this->db->where('date_reg >=', '(NOW() + INTERVAL 1 DAY)', false);
$this->db->get();

【讨论】:

  • 不工作,问题可能是我的 date_reg 字段类型是日期时间,这可能是问题吗?
  • 我已经测试过了。 SELECT * FROM customer_entity WHERE created_at >= (NOW() + INTERVAL 1 DAY) 它为我的客户专栏工作。
  • 我也有日期时间,没问题你可以再做一件事让我分享
  • $this->db->where('DATE(date_reg)', '>=', '(NOW() + INTERVAL 1 DAY)');
  • 这根本不起作用...第一个参数是键,第二个是值,第三个是布尔值,无论您是否要转义它(默认为true) -看看这里codeigniter.com/user_guide/database/… 一个合适的解决方案是$this->db->where('date_reg >=', '(NOW() + INTERVAL 1 DAY)', false);
【解决方案3】:

您是否正在寻找在当前日期后 24 小时内录制的旧记录? 因为让我们以今天的日期为准。 2019-02-21.

$this->db->where('date_reg >', 'DATE_SUB(NOW(), INTERVAL 1 DAY)');

这个查询本质上是说查找大于当前日期的记录。所以它会寻找2019-02-212019-02-22之间的记录,可能返回空。

试试这个。我尽量分析问题,而不是半信半疑地回答

$this->db->where('date_reg <=', 'DATE_SUB(NOW(), INTERVAL 1 DAY)');

【讨论】:

    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2014-09-28
    相关资源
    最近更新 更多