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

20

我有以下表格:

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

我想检查今天的日期是否在dateStartdateEnd之间。

以下是我的查询:

$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;

但是目前它并没有起作用,因为它返回了零行。


但它没有起作用。你能更具体一些吗?出现了什么错误? - Mark Byers
@Mark Byres:它返回了0行。空白的。 - J.K.A.
$todaysDate的日期格式是什么? - Sashi Kant
日期格式相同:2012-26-11 - J.K.A.
正如 pritaeas 指出的那样,月份和日期的格式是不同的。 - Sashi Kant
8个回答

42

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

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

是CURRDATE()还是CURDATE()? - J.K.A.
有人能告诉我如何在 Laravel 中实现这个吗? - Darshan
1
@Sashi Kant,你是SQL忍者。 - DaniKR

4

MySQL默认使用YYYY-MM-DD格式:

$todaysDate="2012-26-11";

should be:

$todaysDate="2012-11-26";

在查询中需要用单引号将其括起来。


0

你需要在修改的日期周围加上单引号:

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

0

使用 "" 来做如下操作

$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
   $date=date("m/d/Y");
   $data=$this->Comman_model->select_manuvl('select * from company_news_details where userid='.$_SESSION['user_key'].' 
     AND "'.$date.'" between `rdate` 
     AND `edate`');
            

1
感谢您提供这段代码片段,它可能会提供一些有限的、即时的帮助。一个适当的解释将极大地提高其长期价值,因为它可以展示为什么这是一个好的问题解决方案,并使其对未来读者有其他类似问题的人更有用。请[编辑]您的答案以添加一些解释,包括您所做的假设。 - helvete

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

-1
$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;  

-1

尝试按照下面的描述移除 {}。

$todaysDate="2012-11-26";//changed date
$sql = mysql_query("SELECT * FROM register WHERE '$todaysDate' between reg_start_date and reg_end_date") or die(mysql_error());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接