Выберите данные между диапазоном даты и времени - PullRequest
0 голосов
/ 26 марта 2019

У меня есть таблица с именем lap, и она содержит такие данные:

code | name | details | time_stamp
===================================
1a   | A-wan| Goods   | 01-02-2019 11:08:10
3a   | D-wan| Goods   | 05-02-2019 01:00:40
2a   | B-gud| Foods   | 02-03-2019 05:31:05
1a   | A-cro| Bills   | 02-03-2019 15:30:15
1a   | A-set| Bills   | 03-03-2019 17:24:35
1a   | C-won| Goods   | 03-03-2019 10:21:55
1a   | C-gud| Foods   | 04-03-2019 01:30:06

Я использовал dd-mm-yy hh:mm:ss формат

и мой запрос SELECT * FROM lap WHERE time_stamp >= '02-03-2019 00:00:00' AND time_stamp <= '03-03-2019 23:59:59'

результат

code | name | details | time_stamp
===================================
3a   | D-wan| Goods   | 05-02-2019 01:00:40
2a   | B-gud| Foods   | 02-03-2019 05:31:05
1a   | A-cro| Bills   | 02-03-2019 15:30:15
1a   | A-set| Bills   | 03-03-2019 17:24:35
1a   | C-won| Goods   | 03-03-2019 10:21:55

он включает в себя данные 3a | D-wan| Goods | 05-02-2019 01:00:40 я думаю, что это может быть из-за того, что 05 больше 02, хотя это другой месяц.Кто-нибудь может помочь в этом?

, когда я изменяю запрос в тот же день, он работает хорошо SELECT * FROM lap WHERE time_stamp >= '02-03-2019 00:00:00' AND time_stamp < '02-03-2019 23:59:59'

code | name | details | time_stamp
===================================
2a   | B-gud| Foods   | 02-03-2019 05:31:05
1a   | A-cro| Bills   | 02-03-2019 15:30:15

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

попробуйте

 SELECT * FROM lap WHERE time_stamp BETWEEN DATE_FORMAT('02-03-2019 00:00:00', '%d-%m-%Y %h:%m:%s') AND DATE_FORMAT('03-03-2019 23:59:59', '%d-%m-%Y %h:%m:%s');

для формата даты и времени mysql, см. Ссылку ниже https://dev.mysql.com/doc/refman/8.0/en/datetime.html

Если вы передаете дату в другом формате, лучше изменить формат.

0 голосов
/ 26 марта 2019

Вы должны использовать функцию date, тогда она будет работать,

SELECT * FROM lap WHERE time_stamp BETWEEN '02-03-2019' AND '03-03-2019';

, или вы можете изменить формат на yyyy-mm-dd в вашей бэкэнде и поставить галочку

SELECT * FROM lap WHERE time_stamp BETWEEN '2019-03-02' AND '2019-03-03';
...