【问题标题】:MySQL: Query This Week DataMySQL:查询本周数据
【发布时间】:2014-10-19 02:24:44
【问题描述】:

目前我正在使用 MySQL,我想查询以选择数据。

假设我有下表:

照片

身份证*

照片网址

照片名称

上传日期

用户 ID

然后,我想获取本周内上传的照片。我的意思是:如果今天是 2014 年 10 月 21 日星期二,那么系统将获取从 2014 年 10 月 20 日星期一到现在上传的照片。 或者如果它是 2014 年 10 月 18 日星期六,那么系统应该返回从 2014 年 10 月 13 日星期一上传的照片。

如果我想获取前一周的数据,查询又如何?我的意思是如果今天是 2014 年 10 月 21 日星期二,我想获取从 2014 年 10 月 13 日星期一到 2014 年 10 月 19 日星期日上传的照片?

感谢您的帮助。

【问题讨论】:

    标签: mysql select


    【解决方案1】:

    假设你想要的星期一是$desiredDate。要在 MySQL 中使用它,您需要正确格式化它:

    $mysqlDate = date('Y-m-d H:i:s', $desiredDate);
    

    然后你只需要选择正确的数据,像这样:

    $query = "SELECT photo_url, photo_name
    FROM photos
    WHERE date_upload > DATE($mysqlDate)
      AND date_upload < DATE_ADD($mysqlDate, INTERVAL 7 DAY)";
    

    所以,在解析时,它应该看起来像这样:

    $query = "SELECT photo_url, photo_name
    FROM photos
    WHERE date_upload > DATE('2014-10-13 00:00:00')
      AND date_upload < DATE_ADD('2014-10-13 00:00:00', INTERVAL 7 DAY)";
    

    MySQL 有很多不错的时间函数,请参阅此处的文档:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

    如果您将上传日期保留为 Unix 时间戳,那就更简单了:

    $query = "SELECT photo_url, photo_name
    FROM photos
    WHERE date_upload > $mysqlDate
      AND date_upload < $mysqlDate + 60*60*24*7"; /* 60*60*24*7 represents number of seconds in 7 days */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 2021-09-14
      • 2017-03-16
      • 1970-01-01
      • 2013-04-02
      相关资源
      最近更新 更多