Запрос периода времени SQL - PullRequest
       9

Запрос периода времени SQL

2 голосов
/ 17 августа 2010

Мне нужно выбрать из таблицы все строки, в которых дата_добавлена ​​между CURDATE () и 6 недель назад.

Помогите, пожалуйста.

Ответы [ 5 ]

3 голосов
/ 17 августа 2010
SELECT  *
FROM    mytable
WHERE   date_added BETWEEN CURDATE() - INTERVAL 6 WEEK AND CURDATE()
2 голосов
/ 17 августа 2010
SELECT *
FROM a_table
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 WEEK) AND CURDATE()
1 голос
/ 17 августа 2010
SELECT * FROM table_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 42
0 голосов
/ 18 августа 2010

если вы используете даты в один год

select date_format(date, '%u') from tab     
where (date_format(date, '%u')-date_format(now(), '%u'))>6

если вы используете даты с разными годами

вам не нужно использовать даты с другим годом. Вы можете использовать

select 
date_format(date, '%u') from tab
where (date_format(date, '%u')-date_format(now(), '%u'))>6
and
date_format(date, '%u') from tab
where (date_format(date, '%Y')-date_format(now(), '%Y'))=0

вы можете оптимизировать запрос с помощью соединения, если хотите. Я думаю, вы знаете, как это сделать

0 голосов
/ 17 августа 2010

SELECT * FROM table_name WHERE DATEDIFF (NOW (), date_added) <= 42 </p>

...