【问题标题】:Compare dates in mysql比较mysql中的日期
【发布时间】:2014-02-27 22:31:32
【问题描述】:

我在 MYSQL 表中有以下格式的日期 “2014-01-04”& 字段名称是“日期”。 通过比较此“日期”字段和当前日期,我想要过去 3 天的所有数据库条目(表名:wp_seasons)。 谁能建议一下 MYSQL 查询是什么?

【问题讨论】:

  • 不要使用字符串作为日期。对此类查询这样做需要愚蠢的额外转换。有关如何减去截止日期,请参阅Date and Time functions
  • 使用DATE 列。
  • 并且不要调用列DATE,因为它是一个保留字,虽然mysql可能会理解你,但它可能会让其他人感到困惑,并导致意想不到的问题。此外,“日期”的描述性不够。像start_date 这样的东西会更好。

标签: php mysql database


【解决方案1】:
<?php
 $query="SELECT * FROM Tablename Where date < "strtotime(date('d_m_y'));
  mysql_query($query);
?>

【讨论】:

  • 我想比较日期,而不是按特定日期搜索
【解决方案2】:

你必须使用mysqlDateDiff函数

SELECT * FROM Tablename  WHERE DATEDIFF(now(),date) <=3

【讨论】:

  • @Deepak 我已经尝试使用日期字段作为字符串。
  • 从 mysql 手册中,DATEDIFF() 返回 expr1 – expr2,表示为从一个日期到另一个日期的天数。 expr1 和 expr2 是日期或日期和时间表达式。所以我猜字符串属于表达式。
【解决方案3】:

如果你表中的日期是字符串,那么你必须将此字符串转换为 MySql 的 DateTime

您必须创建三个 Php 日期时间对象并按照 @Maulik 的建议进行比较..

<?php
$today = date('Y-m-d');
$p1_date = date('Y-m-d', strtotime($today .' -1 day'));
$p2_date = date('Y-m-d', strtotime($today .' -2 day'));

 $query="SELECT * FROM Tablename Where date=".$today." or date=".$p1_date." or date=".$p2_date ;
  mysql_query($query);

?>

【讨论】:

    【解决方案4】:

    SELECT * FROM wp_seasons WHERE DATE(date) = DATE_SUB(DATE(NOW()),INTERVAL 3 DAY)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 2012-02-20
      • 2016-05-12
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多