2016-01-20 96 views
-1

我需要also.So我使用这样大于号和小于在我的SQL

"SELECT * FROM events WHERE start_date <= '2016-01-21%' AND start_date >= '2016-01-19%'" 

查询到的数据获取从2016年1月19日至2016年1月21日,包括日期,但我只得到2016-01-19,2016-01-20数据,而不是2016-01-21。如果在查询中有任何错误,请分享答案。

+0

使用'between'关键字为MySQL –

回答

0

首先请确保数据库提交的 “起始日期”类型是日期时间我们也需要格式化日期时间迄今为止

the tr y指向这个

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') 
+0

start_date的数据类型是datetime.I用过ur查询但它返回与我的查询相同。 –

+0

它只返回19和20数据,没有显示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

尝试使用betweendate功能

SELECT * FROM events WHERE start_date BETWEEN date(2016-01-21) AND date(2016-01-19) 
             ^  ^    ^
+0

@Abdulla',''中PHP' – Hassaan

+0

不需要在我的数据库起始日期是在(2016年1月21日04:00:00)这种格式,所以我使用(2016-01-21%)。用这个怎么写查询 –

+0

我试过了你的查询不起作用 –

0

您可以使用之间,但使用它时,第一个日期必须小于第二牢记。对不起,第一个答案说的是相反的。

SELECT * 
    FROM events 
    WHERE start_date 
    BETWEEN date(2016-01-19 00:00:00) 
    AND date(2016-01-21 23:59:59)