目前我正在使用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日星期日上传的照片吗?
感谢您的帮助。
答案 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 */