我有一个日期范围在“01-01-2019”和“03-02-2019”之间的查询,当我更改日期范围的第(02)天(如“01-01-2019”)和“02-02-2019”则查询无法正常工作。
我有一个查询,日期范围从“01-01-2019”到“03-02-2019”,例如
SELECT * FROM `customer_info` WHERE `rec_date` between '01-01-2019' and '03-02-2019'
所以它可以工作,但是当我更改日期范围的日期(例如从“01-01-2019”到“02-02-2019”)并且查询为
SELECT * FROM `customer_info` WHERE `rec_date` between '01-01-2019' and '02-02-2019'
但是查询不起作用。
我希望从此查询中它应该在更改 TO 日期范围的日期后获取记录:“02-02-2019”。请告诉我解决方案为什么它不获取记录。
最佳答案
仅包含日期: MySQL 日期格式是这样的:YYYY-MM-DD。可以通过简单的方式查询
select * from customer_info where rec_date between '2019-01-01' and '2019-02-02'
或者
select * from customer_info where rec_date between >= '2019-01-01' and '2019-02-02'
包含日期和时间: 只需使用 MySQL 处理日期的格式 YYYY-MM-DD HH:MM:SS 并将查询设置为
select * from customer_info where rec_date >= '2019-01-01' and rec_date <= '2019-02-02'
特别是 MySQL 现在支持亚秒级时间精度。使用 23:59:59 距离一天结束还差一整秒。其中rec_date >= '2019-01-01' 和rec_date <= '2019-02-02' 是定义日期范围的最精确方法,并且适用于从日期到亚秒单位的任何时间精度级别。
或者
就这么简单。
select * from customer_info where rec_date between '2019-01-01 00:00:00' and '2019-02-02 23:59:00'
关于mysql - 查询日期范围 '01-01-2019' 和 '02-02-2019' 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54549435/