【问题标题】:Check if the current date is between two dates + mysql select query检查当前日期是否在两个日期之间+ mysql select查询
【发布时间】:2012-11-13 20:17:45
【问题描述】:

我有下表:

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 Byres :它返回 0 行。空白。
  • $todaysDate 的日期格式是什么?
  • 日期格式相同:2012-26-11
  • 正如 pritaeas 指出的月份和日期的格式不同

标签: php mysql zend-framework


【解决方案1】:

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

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

【讨论】:

  • 是 CURRDATE() 还是 CURDATE() ?
  • 谁能告诉我如何在 laravel 中做到这一点?
【解决方案2】:

MySQL 默认使用 YYYY-MM-DD:

$todaysDate="2012-26-11";

应该是:

$todaysDate="2012-11-26";

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

【讨论】:

    【解决方案3】:
    $sql = mysql_query("SELECT * FROM register WHERE CURDATE() between reg_start_date and reg_end_date") or die(mysql_error());
    

    【讨论】:

      【解决方案4】:

      您需要在更改的日期前后加上单引号:

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

      【讨论】:

        【解决方案5】:
           $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`');
                    
        

        【讨论】:

        • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
        【解决方案6】:
        $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;  
        

        【讨论】:

          【解决方案7】:

          尝试按如下所述移除 {}。

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

          【讨论】:

            猜你喜欢
            • 2014-06-17
            • 1970-01-01
            • 1970-01-01
            • 2017-07-07
            • 1970-01-01
            • 2013-05-16
            • 1970-01-01
            相关资源
            最近更新 更多