Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не могу сделать выборку с интервалом даты
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Не могу сделать выборку с интервалом даты

Страниц (1): [1]
 

1. Adrenalin - 18 Мая, 2017 - 22:10:04 - перейти к сообщению
Задача выгрести все за 500 дней включая текущую - сегодня:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM pages WHERE error_sir != '' OR error_dir != '' AND WHERE date_added < NOW() - INTERVAL 500 DAY



не работает, а надо!
date_added имеет формат datetime

Если брать запрос

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM pages WHERE error_sir != '' OR error_dir != ''



Вот так работает, а как нужно выше ни как.

Пробовал и date_added >= NOW() и по разному не делает выборку.
Не могу понять где проблема. Помогите пожалуйста!
2. Строитель - 18 Мая, 2017 - 22:36:14 - перейти к сообщению
Если не ошибаюсь, проблема здесь : AND WHERE .
Попробуйте убрать второй WHERE, что бы строка sql-запроса приняла такой вид :
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM pages WHERE error_sir != '' OR error_dir != '' AND date_added < NOW() - INTERVAL 500 DAY
Но я не уверен, пробуйте.
3. Adrenalin - 18 Мая, 2017 - 23:47:54 - перейти к сообщению
да спасибо помогло!
4. Vladimir Kheifets - 19 Мая, 2017 - 13:39:39 - перейти к сообщению
Вдогонку, может в хозяйстве пригодится:

SELECT * FROM pages WHERE error_sir != '' OR error_dir != '' AND
date_added BETWEEN ( CURDATE() - INTERVAL 500 DAY ) AND CURDATE()

 

Powered by ExBB FM 1.0 RC1