2012-11-26 89 views
11

我有以下表之间:检查当前的日期是两个日期+ mysql的选择查询

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; 

但它不工作。 任何解决方案。 在此先感谢。

+0

你可以说得更详细点吗?什么是错误? –

+0

@Mark Byres:它返回0行。空白。 – Sky

+0

$ todaysDate的dateformat是什么? –

回答

24

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

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

是不同的是CURRDATE()还是CURDATE()? – Sky

+0

@ kj7:对不起,输入错误... –

+0

@Shashi康德:谢谢....其工作 – Sky

2

MySQL使用YYYY-MM-DD默认:

$todaysDate="2012-26-11"; 

应该是:

$todaysDate="2012-11-26"; 

你在查询需要它周围的单引号。

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; 
0
$sql = mysql_query("SELECT * FROM register WHERE CURDATE() between reg_start_date and reg_end_date") or die(mysql_error()); 
0

你需要把周围的更改了日期的单引号: “但是它不工作”

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