Как выбрать записи за текущую неделю?
У меня в базе есть запись о дате в формате UNIX, я пытаюсь выбрать записи за текущую неделю:
WHERE FROM_UNIXTIME(`date_add`, '%Y-%m-%d') >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
но тут понятное дело что выбирает все записи за последние 7 дней. А мне же нужно именно за текущую неделю.
Буду благодарен за помощь!
Ответы (2 шт):
SELECT id FROM tbl
WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY
AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY
попробуйте так
К сожалению(или к счастью) ни один из ответов или комментариев не помог сделать желаемую выборку из базы по дате в UNIX.
Но с задачей справился, привожу код сюда, может кому-то поможет.
Выбор записей за текущую неделю:
WHERE year( FROM_UNIXTIME(
date, '%Y-%m-%d') ) = year(now()) and week(FROM_UNIXTIME(date, '%Y-%m-%d'), 1) = week(now(), 1)
Выбор записей за текущий месяц:
WHERE month( FROM_UNIXTIME(
date, '%Y-%m-%d') ) = month(now()) and year( FROM_UNIXTIME(date, '%Y-%m-%d') ) = year(now())
week(date, N) где N - номер дня с которого начинается неделя (0 - с воскресенья, 1 - с понедельника)