[英]Select data between datetime range
我有一个名为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
的数据3a | D-wan| Goods | 05-02-2019 01:00:40
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
你应该使用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';
尝试
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
如果您以另一种格式传递日期,则最好更改格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.