1

我有一个查询,它从特定日期范围内的表中读取一些记录。我在 codeigniter 框架下使用 PHP,查询非常简单。

$this->db->select('aa.code,aa.employee_code ,aa.assign_date,aa.asset_serial_no');
$this->db->from('asset_assigns as aa');
$this->db->where("aa.assign_date >= $date1"); 

以上工作正常!

$this->db->select('aa.code,aa.employee_code ,aa.assign_date,aa.asset_serial_no');
$this->db->from('asset_assigns as aa');
$this->db->where("aa.assign_date <= $date2");

上面还读取了正确数量的查询!

$this->db->select('aa.code,aa.employee_code ,aa.assign_date,aa.asset_serial_no');
$this->db->from('asset_assigns as aa');
$this->db->where("aa.assign_date <= $date2");
$this->db->where("aa.assign_date >= $date1");

但是这个有两个'where'的返回空!!!

4

3 回答 3

0
$this->db->where("aa.assign_date <= $date2 AND aa.assign_date >= $date1");
于 2013-04-07T03:42:31.110 回答
0

对于日期比较,请使用 mysqldatedifftimediff函数。

$this->db->where("datediff(aa.assign_date,$date2) <= 0 and datediff(aa.assign_date,$date1) >= 0");

如果您不明确,则将日期作为字符串进行比较。考虑两个查询:

select date('2010/10/01') > date('2010/2/15');

通过日期比较,您可以得到正确的“1”输出,第一个日期大于第二个日期,而:

select '2010/10/01' > '2010/2/15';

通过字符串比较,您会得到“0”,这是日期的错误输出(但字符串的正确输出)。

于 2013-04-07T03:45:48.050 回答
0

我不确定这些 db 方法是如何在 codeignitor 中实现的,但可能你可以替换;

$this->db->where("aa.assign_date <= $date2");
$this->db->where("aa.assign_date >= $date1");

$this->db->where("aa.assign_date <= $date2 AND aa.assign_date >= $date1");
于 2013-04-07T03:48:01.060 回答