查询:
SELECT * FROM `objects`
WHERE (date_field BETWEEN '2010-09-29 10:15:55' AND '2010-01-30 14:15:55')
返回什么。
我应该有足够多的数据让查询工作。我做错了什么?
查询:
SELECT * FROM `objects`
WHERE (date_field BETWEEN '2010-09-29 10:15:55' AND '2010-01-30 14:15:55')
返回什么。
我应该有足够多的数据让查询工作。我做错了什么?
当前回答
你可以手动做,通过比较大于或等于和小于或等于。
select * from table_name where created_at_column >= lower_date and created_at_column <= upper_date;
在我们的示例中,我们需要检索某一天的数据。 我们将从一天的开始到另一天的最后一秒进行比较。
select * from table_name where created_at_column >= '2018-09-01 00:00:00' and created_at_column <= '2018-09-05 23:59:59';
其他回答
试着换个日期:
2010-09-29 > 2010-01-30?
使用Date和Time值时,必须将字段转换为DateTime而不是Date。 试一试:
SELECT * FROM `objects`
WHERE (CAST(date_field AS DATETIME)
BETWEEN CAST('2010-09-29 10:15:55' AS DATETIME) AND CAST('2010-01-30 14:15:55' AS DATETIME))
您的查询应该有日期为
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')
第二次约会要在第一次约会之前。您是在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')
仅仅将date_field转换为date
SELECT * FROM `objects`
WHERE (cast(date_field as date) BETWEEN '2010-09-29' AND
'2010-01-30' )