У меня есть такой запрос:
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».
Добавьте время в ваш запрос
SELECT * FROM bcl1_logs where created_at between '2015-02-07 00:00:00' and '2015-02-10 23:59:59'
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'
Другие ответы объясняют проблему, по которой вы сравниваете дату с датой и временем, поэтому попробуйте использовать DATE()
в запросе:
SELECT * FROM bcl1_logs WHERE DATE(created_at) BETWEEN '2015-02-07' AND '2015-02-10'
Если вы используете только часть даты, часть времени установлена на 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'