0

我有一张这样的桌子:

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

我想获得一个结果集,其中仅包含一周中 X 天(星期一或星期二或星期三等)发生的记录

4

3 回答 3

3

DAYNAME()在您的WHERE条款中使用

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

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

于 2013-02-07T19:16:35.687 回答
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

于 2013-02-07T19:19:36.743 回答
0

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

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

查看演示

于 2013-02-07T19:45:43.870 回答