MYSQL получить данные в течение определенного периода времени - PullRequest
0 голосов
/ 22 февраля 2011

всем, у меня проблемы с получением правильного запроса 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, поэтому я использую ДАТА / ИНТЕРВАЛ COMBO.

чтоя пытаюсь сделать, это выбрать записи в течение 2 недель, учитывая, что вы знаете дату начала этого двухнедельного цикла.

заранее спасибо

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Используйте Datediff.

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
AND DATEDIFF(problem_timestamp,'20110112') <= 14
ORDER BY problem_id
0 голосов
/ 22 февраля 2011

Почему бы просто не заставить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...