【问题标题】:select date that is less or equal to current date选择小于或等于当前日期的日期
【发布时间】:2014-10-30 10:09:05
【问题描述】:

我正在尝试在 end_date 字段中选择小于或等于当前日期但不起作用的日期,并且我的字段 end_date 与以下当前日期相同的日期格式(08-09-2014)数据是我的代码谢谢

$currentdate = date("d-m-Y");
$query1 = "SELECT * FROM location WHERE end_date <= '$currentdate'";            
$result1 = mysql_query ($query1) or die('query error');
while( $line1 = mysql_fetch_assoc($result1)){   
echo $line1['end_date'];
}

【问题讨论】:

  • end_date 有什么类型?

标签: php mysql sql date


【解决方案1】:

试试这个

    SELECT * FROM location WHERE end_date <= DATE_FORMAT(CURDATE(), '%Y-%m-%d')

【讨论】:

    【解决方案2】:

    试试 -

    SELECT * FROM location WHERE end_date <= DATE_FORMAT(CURDATE(), '%d-%m-%Y')
    

    【讨论】:

      【解决方案3】:
      $currentdate = date("Y-m-d");
      $query1 = "SELECT * FROM location WHERE `end_date` <= '$currentdate'";            
      $result1 = mysql_query ($query1) or die('query error');
      while( $line1 = mysql_fetch_assoc($result1)){   
      echo $line1['end_date'];
      }
      

      试试这个...必须有数据库日期格式;;

      【讨论】:

        【解决方案4】:

        如果您的 currentdate 独立于系统日期(例如,如果您在不同的时区操作),并且由于某种原因,您的 end_date 不是日期类型,那么试试这个:

        SELECT * FROM location 
        WHERE str_to_date(end_date, '%d-%m-%Y') <= str_to_date('$currentdate', '%d-%m-%Y')
        

        可以更改格式以匹配您的输入。

        如果您想比较日期,请确保您比较的是日期而不是字符串。

        【讨论】:

          猜你喜欢
          • 2023-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-09
          • 1970-01-01
          • 2012-02-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多