【问题标题】:selecting rows that are older than current date in mysql在mysql中选择早于当前日期的行
【发布时间】:2009-12-02 06:54:51
【问题描述】:

我有一个 mysql 表,其中包含开始和结束日期/时间的字段。

如何使用 php 仅选择比当前日期更早的行。

结束日期格式为2009-11-25 08:01:00,字段类型为datetime

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    提供的时间戳和 MySQL 在同一时区,你可以比较NOW()

    SELECT * FROM tbl WHERE date_col < NOW()
    

    【讨论】:

    • 只要你的时区永远不会改变就可以了;例如夏令时。但如果你头脑清醒,你会将所有服务器时钟设置为 UTC。
    【解决方案2】:

    您的 SQL 查询类似于:

    SELECT *
      FROM your_table t
     WHERE t.end-date < CURDATE()
    

    支持获取当前日期的各种同义词 - NOW()、SYSDATE()...

    参考:MySQL date related functions

    【讨论】:

    • 列名中间的连字符肯定是灾难的根源。
    • 我同意 - 我匆忙忘记评论它,但它是 OP 提供的列名。
    【解决方案3】:

    它可能看起来像:

    $result = mysql_query('SELECT * FROM mytable WHERE datefield < NOW()');
    if (! $result) { die(mysql_error()); }
    while ($row = mysql_fetch_assoc($result)) {
        // handle contents of $row
    }
    mysql_free_result($result);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多