Мне нужно выбрать из таблицы все строки, которые имеют date_added между CURDATE() и 6 неделей назад.SQL запрос периода времени
Помогите пожалуйста.
Мне нужно выбрать из таблицы все строки, которые имеют date_added между CURDATE() и 6 неделей назад.SQL запрос периода времени
Помогите пожалуйста.
SELECT *
FROM a_table
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 WEEK) AND CURDATE()
SELECT *
FROM mytable
WHERE date_added BETWEEN CURDATE() - INTERVAL 6 WEEK AND CURDATE()
SELECT * FROM table_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 42
SELECT * FROM table_name WHERE DATEDIFF (NOW(), DATE_ADDED) < = 42
если вы используете даты в течение одного года
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
можно оптимизировать запрос с присоединиться, если вы хотите. Я думаю, вы знаете, как это сделать
Какой диалект SQL? –
MySQL, чтобы использовать его с php – Gatman
В будущем вы должны указать это в вопросе или заголовке (в дополнение к тегам). Так как разные диалекты SQL имеют различный синтаксис и функции. –