2013-04-17 36 views
0

我希望本周可以看到用户上传的图片。MYSQL本周选择

这是正确的吗?

"SELECT * 
FROM images 
WHERE userid = '$userid' 
    AND uploadeddate >= DATEPART(week, uploadeddate) = DATEPART(week, GETDATE()) 
ORDER BY uploadeddate DESC"; 

我得到错误。谢谢您的帮助。

+1

标记为具有'sql-server'日期函数的'mysql'?我的猜测是'mysql',因为'$ userid'。 – Kermit

+0

您使用的数据库是?您标记了MySQL,但语法看起来像SQL Server? – Taryn

+0

介意与我们分享错误文本? – Quassnoi

回答

1
SELECT * 
FROM images 
WHERE userid = $userid 
     AND uploadeddate >= CURDATE() - INTERVAL WEEKDAY(day) DAY 
     AND uploadeddate < CURDATE() - INTERVAL WEEKDAY(day) DAY + INTERVAL 7 DAY 

创建于(userid, uploadeddate)这个索引快速地工作。

0

以下查询将返回当前周的记录。在您的SELECT中指定列列表也是最佳做法。

如果您使用的SQL Server:

SELECT ... WHERE DATEPART(week, uploadeddate) = DATEPART(week, GETDATE()) 

如果你使用MySQL:

SELECT ... WHERE WEEK(uploadeddate) = WEEK(CURDATE())