Привет, у меня есть таблица с полем даты и другой информацией. Я хочу выбрать все записи за прошедшую неделю (неделя начинается с воскресенья).
значения таблицы:
id date
2 2011-05-14 09:17:25
5 2011-05-16 09:17:25
6 2011-05-17 09:17:25
8 2011-05-20 09:17:25
15 2011-05-22 09:17:25
Я хочу выбрать все идентификаторы с прошлой недели, ожидаемый результат - 5, 6, 8. (идентификатор 2 не на прошлой неделе, а идентификатор 15 на текущей неделе).
Как писать и SQL Query для этого же.
SELECT id FROM tbl WHERE WEEK(date, 0) = WEEK(NOW(), 0) - 1
неделями, но я думаю, его цель - не настоящие календарные недели. По крайней мере, он не упомянул о таких вещах, как ISO-8601, или о том, хочет ли он принять во внимание начало года.WHERE table.column >= DATE(NOW()) - INTERVAL 7 DAY
Ответы:
источник
источник
id 15
...Я использую функцию YEARWEEK специально, чтобы вернуться к предыдущей целой календарной неделе (в отличие от 7 дней до сегодняшнего дня). YEARWEEK также позволяет использовать второй аргумент, который установит начало недели или определит, как будет обрабатываться первая / последняя неделя года. YEARWEEK позволяет вам сохранить количество недель для перехода назад / вперед в одной переменной и не будет включать тот же номер недели из предыдущих / будущих лет, и он намного короче, чем большинство других ответов здесь.
источник
WHERE YEARWEEK(dateColumnFromTbl, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)
Упрощенная форма:
Данные за последнюю неделю:
2 недели назад данные:
SQL Fiddle
http://sqlfiddle.com/#!8/6fa6e/2
источник
Вы можете произвести расчет в php, а затем добавить его в свой запрос:
теперь это даст дату за неделю назад
источник
Наверное, самый простой способ:
На 8 дней (т.е. понедельник - понедельник)
источник
ПОЖАЛУЙСТА, люди ... «Прошлая неделя», как спрашивал ОП, и где я искал (но не нашел удовлетворительных ответов), это ПОСЛЕДНЯЯ НЕДЕЛЯ.
Если сегодня вторник, то ПОСЛЕДНЯЯ НЕДЕЛЯ - понедельник НЕДЕЛЮ НАЗАД по воскресенье НЕДЕЛЮ НАЗАД .
Так:
Или для недель ISO:
источник
Вам нужно будет вычислить, какой день относительно сегодняшнего дня является воскресеньем в вашем промежуточном программном обеспечении (php, python и т. Д.) *
Затем,
источник
Это может быть одна строка:
источник
Вот простой способ, это реальный пример из моего кода, который отлично работает:
источник
Вышеупомянутый запрос не будет работать. После
where
предложения, если мы не можемCAST
значение столбца, то оно не будет работать. Вам следуетcast
значение столбца.например:
источник
источник
Я также часто делаю быструю проверку «на прошлой неделе», и следующее, как правило, хорошо работает для меня, включая сегодняшний.
Если вы хотите, чтобы это НЕ включало сегодняшний день, просто вычтите дополнительный день из @EndDate. Если я выберу эти две переменные сегодня, получу
Если бы я хотел с воскресенья по воскресенье, у меня было бы следующее.
источник
источник
Вы также можете использовать это обычным способом
источник
Я использую это для недели, начинающейся с ВОСКРЕСЕНИЯ:
источник
Например, как в прошлом месяце, прошлом году, последних 15 дней, последних 3 месяцах.
Получить последнюю запись за неделю
Использование приведенного ниже запроса MySQL для извлечения записей за последнюю неделю из таблицы базы данных mysql.
источник
Вот способ получить записи за последнюю неделю, месяц и год в MySQL.
Прошлая неделя
Прошлый месяц
В прошлом году
источник
Если вы хотите получить записи за последние 7 дней, вы можете использовать приведенный ниже фрагмент:
источник
Попробуй это:
источник
Если вы уже знаете даты, вы можете просто использовать их, например:
источник