我有一张这样的表:
id | gallons_used | date
----------------------
1 2 157263300
2 5 157262000
...
我想得到一个结果集,其中只包含在一周的X日(周一,周二或周三等)发生的记录
答案 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