1

PHP:

$current = time();
$time_ago = $current - 45*60; // get the time 45 mts ago.

MySQL:

日時列が「変更された」テーブルステータスがあります。

テーブルにクエリを実行して、変更時間がそれよりも短い行を取得しようとしています$time_ago;

私のPHPコード:

$this->db->select("(SELECT UNIX_TIMESTAMP(status.modified) FROM status WHERE status_id = 0) AS modified_timestamp" , FALSE);
        $this->db->from('status');
        $this->db->where('status_id', 0);
        $this->db->where('modified_timestamp <', $time_ago);
        $this->db->limit(25);
        $q = $this->db->get();

データベース エラーの取得:

「where句」の不明な列「modified_timestamp」

SELECT 
    (SELECT UNIX_TIMESTAMP(status.modified) FROM status WHERE status_id = 0) AS modified_timestamp 
    FROM (status) WHERE `status_id` = 0 AND `modified_timestamp` < 1343542758 LIMIT 25
4

2 に答える 2

0
$this->db->from('status');
$this->db->where('status_id', 0);
$this->db->where('UNIX_TIMESTAMP(modified) <', $time_ago);
$this->db->limit(25);
于 2012-07-29T07:15:01.860 に答える
0

UNIX_TIMESTAMP() を where 句で使用できることがわかりましたよね?

$this->db->select("UNIX_TIMESTAMP(modified)" , FALSE);
$this->db->from('status');
$this->db->where('status_id', 0);
$this->db->where('UNIX_TIMESTAMP(modified) <', $time_ago);
$this->db->limit(25);
$q = $this->db->get();

注: そのままでは機能しない可能性があります。私はこの特定の DB API を使用していませんが、アイデアはわかります。

于 2012-07-29T07:22:27.937 に答える