将MySQL结果限制为一周的前几天

时间:2013-02-07 19:15:16

标签: mysql sql database

我有一张这样的表:

id | gallons_used | date
----------------------
1    2             157263300
2    5             157262000
...

我想得到一个结果集,其中只包含在一周的X日(周一,周二或周三等)发生的记录

3 个答案:

答案 0 :(得分:3)

WHERE子句

中使用DAYNAME()
WHERE DAYNAME(FROM_UNIXTIME(`date`)) = 'Monday'  <-- by day of the week
  AND `date` < INTERVAL CURRENT_DATE - 7 DAY     <-- within the last week

您也可以使用DAYOFWEEK(),但这更具可读性。

答案 1 :(得分:0)

鉴于您的date列是时间戳,可以检查星期三的某些示例:

DAYOFWEEK(date) = 4 

参考文档:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_dayofweek

SQLFiddle:http://www.sqlfiddle.com/#!2/12762/3

我在约会期间也有FROM_UNIXTIME()电话,但我不认为这是必需的(不是100%肯定)。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime

答案 2 :(得分:0)

由于您使用的是Unix时间戳,因此可以使用以下命令:

SELECT id, UNIX_TIMESTAMP(`date`)
FROM ...
WHERE DAYNAME(FROM_UNIXTIME(`date`)) = 'Monday'
  AND `date` > UNIX_TIMESTAMP() - 604800

See the demo