Php 在我的sql中大于和小于

Php 在我的sql中大于和小于,php,codeigniter,mysqli,Php,Codeigniter,Mysqli,我需要获取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-192016-01-20数据,而不是2016-01-21。如果查询中有任何错误,请分享答案。使用 尝试使用函数 首先,请确保“开始日

我需要获取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-192016-01-20数据,而不是2016-01-21。如果查询中有任何错误,请分享答案。

使用

尝试使用函数


首先,请确保“开始日期”的数据库字段类型日期时间我们还需要格式化日期时间到日期

试着运行这个

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

SELECT*FROM events,其中(DATE_FORMAT(开始日期),%Y-%m-%d')>='2016-01-19'和DATE_FORMAT(开始日期),%Y-%m-%d')您可以在两者之间使用,但请记住,在使用它时,第一个日期必须小于第二个。对于第一个答案,抱歉的回答是相反的

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

使用
between
关键字mysql@Abdulla
在我的数据库中的
PHP
中不是必需的,因为开始日期是(2016-01-21 04:00:00)这种格式,所以我使用(2016-01-21%)。如何编写查询类运算符如何使用查询类运算符如何获取它开始日期的数据类型为datetime。我使用了你的查询,但它返回的结果与我的查询结果相同。它只返回19和20个数据,不显示21个数据。请将此答案勾选为正确,有一个勾号
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' ) 
  SELECT * 
  FROM events 
  WHERE start_date 
  BETWEEN  date(2016-01-19 00:00:00)
  AND   date(2016-01-21 23:59:59)