查询:

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

返回什么。

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


当前回答

您的查询应该有日期为

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

try

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

其他回答

仅仅将date_field转换为date

SELECT * FROM `objects` 
WHERE (cast(date_field as date) BETWEEN '2010-09-29' AND 
'2010-01-30' )

试着换个日期:

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

我刚刚在mariaDB上测试了2个案例,如下:

Case 1: SELECT * FROM table_name WHERE DATE(date_field) BETWEEN '2016-12-01' AND '2016-12-10' // include 2016-12-10
Case 2: SELECT * FROM table_name WHERE (date_field BETWEEN '2016-12-01' AND '2016-12-10') // not include 2016-12-10

第二次约会要在第一次约会之前。您是在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')

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