我有一张这样的桌子:
id | gallons_used | date
----------------------
1 2 157263300
2 5 157262000
...
我想获得一个结果集,其中仅包含一周中 X 天(星期一或星期二或星期三等)发生的记录
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()
,但这更具可读性。
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
由于您使用的是 Unix 时间戳,因此可以使用以下内容:
SELECT id, UNIX_TIMESTAMP(`date`)
FROM ...
WHERE DAYNAME(FROM_UNIXTIME(`date`)) = 'Monday'
AND `date` > UNIX_TIMESTAMP() - 604800