在 codeigntier 中,我有以下内容:
echo $this->db->where('FROM_UNIXTIME(`last_login`) >=','NOW() - INTERVAL 1 DAY')->from('users')->count_all_results();
上面的结果是:0
我使用了 print_r($this->db->last_query());获取正在运行的实际sql字符串,如下所示:
SELECT COUNT( * ) AS `numrows`
FROM `users`
WHERE FROM_UNIXTIME( `last_login` ) >= NOW( ) - INTERVAL 1
DAY
当我使用 mysql 运行它时,我得到了正确的结果:1。
我猜测转义现在正在工作或者其他什么,但无法弄清楚。有什么想法吗?
==== 新更新。
抱歉,CI3 指出了这一点:
SELECT COUNT(*) AS `numrows`
FROM `users`
WHERE FROM_UNIXTIME(`last_login`) >= 'NOW() - INTERVAL 1 DAY'
当我在 mysql 中运行时,上面的结果为 0。当我使用下面时,它有效:
SELECT COUNT(*) AS `numrows`
FROM `users`
WHERE FROM_UNIXTIME(`last_login`) >= NOW() - INTERVAL 1 DAY
所以它是两个小撇号。我该如何解决这个问题?
最佳答案
我将语句更改为以下内容并且有效:
$this->db->where("FROM_UNIXTIME(`last_login`) >= NOW() - INTERVAL 1 DAY")->from('users')->count_all_results();
关于php - Codeigniter 查询生成器 - 查找特定日期的记录数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663485/