我有一个表“abc”,其中我存储了具有多个记录的时间戳,假设
1334034000 Date:10-April-2012
1334126289 Date:11-April-2012
1334291399 Date:13-April-2012
我想构建一个sql查询,我可以在第一次尝试找到具有最后两天值的记录,然后在接下来的两天第二次查找。 。 。
示例:
Select *,dayofmonth(FROM_UNIXTIME(i_created)) from notes
where dayofmonth(FROM_UNIXTIME(i_created)) > dayofmonth(FROM_UNIXTIME(i_created)) -2
order by dayofmonth(FROM_UNIXTIME(i_created))
此查询会明确返回所有记录,但我们需要最多两天的记录。
请相应地建议。 提前致谢
编辑:
如果今天是4月13日,我们的桌子最多有10天,9天,8天,.... 。 。 4月10日,我们必须显示4月10日和他的最后日期记录
答案 0 :(得分:2)
尝试此查询 -
SELECT t1.* FROM table t1
JOIN (SELECT date FROM table GROUP BY date DESC LIMIT 2) t2
ON t1.date = t2.date
它将显示所有日期= '11 -April-2012'和'13 -April-2012'的记录。
这是你想要的吗?
<强>编辑:强>
SELECT
t1.*, t2.date
FROM
notes t1
JOIN (SELECT
DATE(FROM_UNIXTIME(i_created)) date
FROM
notes
GROUP BY
date DESC
LIMIT
2
) t2
ON
DATE(FROM_UNIXTIME(t1.i_created)) = t2.date
答案 1 :(得分:0)
将limit 2
添加到查询的末尾