Error en query MySQL

Cuando trato de correr, el siguiente query no me arroja nada. alguien podria asesorarme, Gracias.

SELECT * FROM bd.tabla WHERE interv='15seg' 
    IF(interv='15seg' 
    AND fecha_hora='2016-08-02 00:00:00' 
    AND fecha_hora >= '2016-08-18 23:59:59')
    SET hora between '00:00:00' and '00:00:00' 
    ELSE (interv='5HZ,15seg' 
    AND and fecha_hora >= '2016-08-02 00:00:00' 
    AND fecha_hora <= '2016-08-18 23:59:59' 
    and estacion in ('est1','est2','est3') 
and hora between '00:00:00' and '03:59:59')
0
задан 19.08.2016, 23:14
3 ответа

Это

AND fecha_hora='2016-08-02 00:00:00' 
AND fecha_hora >= '2016-08-18 23:59:59')

звучат ввода два AND несовместимые между собой, потому что он говорит в систему искания двух рангов дат, отделенных с одним AND, вещь, которая когда бы то ни было произойдет, следовательно ничего не возвращает.

Может быть, если ты это изменяешь в

AND fecha_hora>='2016-08-02 00:00:00' 
AND fecha_hora <= '2016-08-18 23:59:59')

звучи более логический.

Может быть, есть больше вещей на контенте самой таблицы, но это прыгает в глаза немедленно.

8
ответ дан 24.11.2019, 13:37

Если то, в чем ты нуждаешься, состоит в том, чтобы искать между датами, лучшее состоит в том, чтобы ты использовал between.

Он более легкий для того, чтобы быть прочитанным и система узнает то, что он должен делать, так как это функция.


Пример

WHERE
.
.
AND

fecha_hora BETWEEN '2016-08-02 00:00:00' AND '2016-08-18 23:59:59'
.
.
5
ответ дан 24.11.2019, 13:37

Он пытается помещать даты с одним BETWEEN

SELECT * FROM bd.tabla WHERE interv='15seg' 
    IF(interv='15seg' 
    AND fecha_hora BETWEEN '2016-08-02 00:00:00' 
    AND '2016-08-18 23:59:59')
    SET hora between '00:00:00' and '00:00:00' 
    ELSE (interv='5HZ,15seg' 
    AND fecha_hora BETWEEN '2016-08-02 00:00:00' 
    AND '2016-08-18 23:59:59' 
    and estacion in ('est1','est2','est3') 
and hora between '00:00:00' and '03:59:59')

BETWEEN является оператором Гєtil очень, чтобы использовать внутри нее claГєsula WHERE, чтобы определять ранг содержащей стоимости. Он используется обычно с датами, но tambiГ©n возможно использовать с strings и с nГєmeros.

2
ответ дан 24.11.2019, 13:37