MySQL:查询本周数据

时间:2014-10-19 02:24:45

标签: mysql select

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

假设我有下表:

照片

ID *

PHOTO_URL

PHOTO_NAME

Date_upload

USER_ID

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

说出你想要的星期一是$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 */