【问题标题】:PHP MySQL date greater thanPHP MySQL 日期大于
【发布时间】:2014-11-14 09:59:19
【问题描述】:

好的...

所以我有一个字符串,在这种情况下使用 PHP date('Y-m-d H:i:s'); 我希望它检查数据库行,如果它大于。

$sql="SELECT * FROM date WHERE '$this->dateClose' < start_time AND '$this->dateOpen' < end_time";

它处于一个循环中,因此它将打印 start_time 小于 dateClose 的所有内容,而 dateOpen 和 end_time 则相反。但它不起作用,请帮助。

【问题讨论】:

  • $this-&gt;dateClose$this-&gt;dateOpen 中有什么内容? start_timeend_time 字段的格式是什么?
  • 试试这个$sql="SELECT * FROM date WHERE {$this-&gt;dateClose} &lt; start_time AND {$this-&gt;dateOpen} &lt; end_time";
  • start_time = 2014-11-01 21:00 end_time = 2014-11-02 19:00 $this->dateOpen = 2014-11-01 20:00 $this->dateClose = 2014- 11-02 18:00
  • 所以您的查询是SELECT * FROM date WHERE '2014-11-02 18:00' &lt; '2014-11-01 21:00' AND '2014-11-01 20:00' &lt; '2014-11-02 19:00''2014-11-02 18:00' 为假。

标签: php mysql database


【解决方案1】:

尝试使用WHERE field operator value_to_match 并以适当的格式更改您的值以匹配datetime

$sql="SELECT * FROM date WHERE start_time > '".date('Y-m-d H:i:s', strtotime($this->dateClose))."' AND end_time < '".date('Y-m-d H:i:s', strtotime($this->dateOpen))."'";

【讨论】:

    【解决方案2】:

    请试试这个

    $sql="SELECT * FROM date WHERE '".$this->dateClose."' < start_time AND '".$this->dateOpen."' < end_time";
    

    【讨论】:

      【解决方案3】:

      对于给定的值

      start_time = 2014-11-01 21:00 end_time = 2014-11-02 19:00 
      $this->dateOpen = 2014-11-01 20:00 $this->dateClose = 2014-11-02 18:00
      

      从 sql 中不获取任何行是可以的。您的条件没有有效的行

      WHERE '2014-11-02 18:00' < start_time AND '2014-11-01 20:00' < end_time'
      

      '2014-11-02 18:00' &lt; '2014-11-01 21:00' 部分为假。 你必须重新考虑你想从你的 sql 中得到什么。

      【讨论】:

        猜你喜欢
        • 2017-01-02
        • 1970-01-01
        • 2015-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-26
        相关资源
        最近更新 更多