@pofeg

Как наладить запрос в бд по диапазону дат?

Есть запрос в базу который выводит посты с указанными параметрами значения ОТ и ДО (from - to):
elseif( preg_match( "#^from-(.+)#is", $key, $matches) ) {
	if( trim($value) != "" ) {
		$key = $matches[1];
			$where[] = "ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1 ), '||', 1))>={$value}";
		}
	} elseif( preg_match( "#^to-(.+)#is", $key, $matches) ) {
		if( trim($value) != "" ) {
			$key = $matches[1];	
			$where[] = "ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1), '||', 1))<={$value}";
		}
	}

Переменная $key это типа "name" для поля input
Переменная $value это то что я вписал в этот input, т.е value

На странице 2 поля ipnut
поле from
и поле to
Но значение которое я вписываю в эти поля, они не по нарастающему формату а в формате даты и задаются datapicker.js
Т.е в одном поле я указываю дату от а в другом дату по
Но запрос не дает нужных результатов, так как предназначен он для отображения => и <= от меньшего к большему но никак для даты.
Помогите пожалуйста переделать его под формат даты, как это сделать? хотябы куда копать?

Переменная $where - это обычный WHERE который вставляется в конец SQL запроса.
Т.е в начале у меня db - > sql SELECT ла-ла-ла и $WHERE

Заранее спасибо всем кто заглянул)
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
DevMan
@DevMan
у вас какая-то дичь в запросах: АБС, множественные подстроки и все такое.
мускуль отлично работает с датами, в частности, оператор BETWEEN.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы