如何使用MySQL在两个日期之间进行查询?

以下查询:

SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-09-29 10:15:55' AND '2010-01-30 14:15:55') 

什么也不返回

我应该有足够的数据来查询工作。 我究竟做错了什么?

你的第二次约会是在你的第一次约会之前(即你在2010年9月29日至2010年1月30日之间查询)。 尝试颠倒日期的顺序:

 SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55') 

你的查询应该有日期为

 select * from table between `lowerdate` and `upperdate` 

尝试

 SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55') 

datetime类型的date_field ? 另外,您还需要首先安排收货日期。

它应该是:

 SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55') 

可能是在服务器端或客户端的日期配置问题。 我发现这是多个数据库的主机配置西班牙语,法语或其他…这可能会影响格式dd / mm / yyyy或mm / dd / yyyy多个数据库的常见问题。

尝试切换日期:

 2010-09-29 > 2010-01-30? 

DATE()是一个MySQL函数,仅提取日期或日期/时间表达式的日期部分

 SELECT * FROM table_name WHERE DATE(date_field) BETWEEN '2016-12-01' AND '2016-12-10';