检查当前日期是否在两个日期+ mysql选择查询之间

时间:2012-11-26 10:56:52

标签: php mysql zend-framework

我有以下表格:

id     dateStart     dateEnd      active
1      2012-11-12    2012-12-31   0
2      2012-11-12    2012-12-31   0

我想在dateStart和dateEnd之间比较今天的日期。

以下是我的查询:

$todaysDate="2012-26-11";
$db = Zend_Registry::get("db");
$result = $db->fetchAll("SELECT * FROM `table` WHERE active=0 AND {$todaysDate} between dateStart and dateEnd");
return $result;

但它不起作用。 任何解决方案 提前谢谢。

6 个答案:

答案 0 :(得分:29)

试试这个::这将解决你的问题

SELECT * FROM `table` WHERE active=0 AND CURDATE() between dateStart and dateEnd

答案 1 :(得分:3)

MySQL默认使用YYYY-MM-DD:

$todaysDate="2012-26-11";

应该是:

$todaysDate="2012-11-26";

在查询中你需要单引号。

答案 2 :(得分:0)

$todaysDate="2012-11-26";//changed date
$db = Zend_Registry::get("db");
$select=$db->query("SELECT * FROM `table` WHERE active=0 AND {$todaysDate} between dateStart and dateEnd");
$result = $select->fetchAll();
return $result;  

答案 3 :(得分:0)

$sql = mysql_query("SELECT * FROM register WHERE CURDATE() between reg_start_date and reg_end_date") or die(mysql_error());

答案 4 :(得分:0)

您需要在更改日期周围加上单引号:

"SELECT * FROM `table` WHERE active=0 AND '{$todaysDate}' between dateStart and dateEnd"

答案 5 :(得分:0)

尝试如下所述删除{}。

def to_interval_value(self, data):
    return data