Mysql между оператором показывает только первый ряд

У меня есть такой запрос:

SELECT * FROM bcl1_logs where created_at between '2015-02-07' and '2015-02-10'

и такой стол:

 0 =  "id":1,
"pc_name":"BCL101",
"created_at":"2015-02-07 22:25:44"

2 =  "id":2,
"pc_name":"BCL101",
"created_at":"2015-02-07 22:25:44"
3 =  "id":3,
"pc_name":"BCL101",
"created_at":"2015-02-10 22:25:44"

Когда я запрашиваю свое заявление, оно показывает только первые две строки с датой «2014-02-07» ​​и не включает дату с «2015-02-10», когда мой запрос между датами «2014-02-07» и «2015-02-10».

2

Решение

Добавьте время в ваш запрос

SELECT * FROM bcl1_logs where created_at between '2015-02-07 00:00:00' and '2015-02-10 23:59:59'
0

Другие решения

value between X and Y средства value >= x AND value < y, так '2015-02-10' не учтено Если вы хотите использовать between оператор и включить его, нужно добавить дополнительный день:

SELECT *
FROM   bcl1_logs
WHERE  created_at BETWEEN '2015-02-07' AND '2015-02-11'
0

Другие ответы объясняют проблему, по которой вы сравниваете дату с датой и временем, поэтому попробуйте использовать DATE() в запросе:

SELECT * FROM bcl1_logs WHERE DATE(created_at) BETWEEN '2015-02-07' AND '2015-02-10'
0

Если вы используете только часть даты, часть времени установлена ​​на 00:00:00, Итак, ваш запрос выглядит

 created_at between '2015-02-07 00:00:00'  and '2015-02-10 00:00:00'

И это не включает в себя третью запись со временем 22:25:44,

изменить на:

 created_at between '2015-02-07 00:00:00'  and '2015-02-10 23:59:59'
0
По вопросам рекламы [email protected]