我需要从2016-01-19到2016-01-21获取数据,包括日期。所以我使用这样的查询
"SELECT * FROM events WHERE start_date <= '2016-01-21%' AND start_date >= '2016-01-19%'"
但我只获得了2016-01-19,2016-01-20数据,而不是2016-01-21.如果该查询中有任何错误。请分享答案。
答案 0 :(得分:2)
使用between
SELECT *
FROM events
WHERE start_date BETWEEN date(2016-01-21 00:00:00) AND date(2016-01-19 23:59:59);
答案 1 :(得分:1)
SELECT * FROM events WHERE start_date BETWEEN date(2016-01-21) AND date(2016-01-19)
^ ^ ^
答案 2 :(得分:0)
首先请确保“start_date”的数据库提交类型为 datetime ,我们还需要格式化日期时间
尝试运行此
SELECT * FROM events WHERE ( DATE_FORMAT( start_date, '%Y-%m-%d' ) >= '2016-01-19' AND DATE_FORMAT( start_date, '%Y-%m-%d' ) <= '2016-01-21' )
答案 3 :(得分:0)
您可以使用BETWEEN,但在使用时请记住,第一个日期必须小于第二个日期。对不起,第一个答案是相反的。
SELECT *
FROM events
WHERE start_date
BETWEEN date(2016-01-19 00:00:00)
AND date(2016-01-21 23:59:59)