0

みなさん、この MYSQL クエリを正しく取得するのに問題があります

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
AND problem_timestamp BETWEEN '20110212' AND DATE('20110212', INTERVAL 14 DAY) 
ORDER BY problem_id

問題は、20110212 が php によって動的に生成されることです。これが、DATE/INTERVAL COMBO を使用する理由です。

私がやろうとしているのは、その 2 週間サイクルの開始日がわかっている場合、2 週間の時間枠内でエントリを選択することです。

前もって感謝します

4

2 に答える 2

0

Datediff を使用します。

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
AND DATEDIFF(problem_timestamp,'20110112') <= 14
ORDER BY problem_id
于 2011-02-22T12:42:09.663 に答える
0

PHPを再フォーマットしてからクエリを実行するだけではどうですか

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
problem_timestamp > '2011-01-24' AND problem_timestamp < DATE_ADD('2011-02-12', INTERVAL 14 DAY) 
ORDER BY problem_id

PHP の日付を現在の形式から MYSQL の形式に変換するには、次を使用します。

$date = date_create_from_format('Ymd', '20110212');
$mysqlDate = date_format($date, 'Y-m-d'); //2011-01-24
于 2011-02-22T12:40:09.143 に答える