我想创建一个查询来从数据库中获取所有数据。但条件是从当前月份之前获得,数据将转换为3天时段与count.Like如果我有12个月数据和7月1至3日期数据将插入50行和3至6日期数据将插入到5行。如何获取这些东西。这是邮件问题。我想知道但没有发现与我的问题有关。这可能。
答案 0 :(得分:1)
我假设你有一个DATE或DATETIME列,它标记了插入的日期,比如列created_at
。然后你就可以得到理想的结果。
SELECT
COUNT(*)
FROM
your_table
WHERE
created_at BETWEEN '2014-07-01' AND '2014-07-31 23:59:59'
GROUP BY
(DAYOFMONTH(created_at) - 1) DIV 3
<强>解释强>
在DIV运算符的帮助下,您可以获得3天的广告位。
注意强> 如果有一个没有行的插槽,它将不在结果中。要获得这些,您可以使用最多11个插槽的LEFT JOIN。
<强> Demo 强>
答案 1 :(得分:0)
如果您将时间戳作为属性类型,那么可能会帮助您
SELECT count(*) as count
FROM table
AND
TIMESTAMPDIFF(DAY,date,2014-08-01)<=3";
日期是您的列的属性, TIMESTAMPDIFF 会在给定日期之间找到差异,如果它在2014-08-01记录之后的3天内将显示。这样,只需将一个日期发送到此位置,您就可以从表中找到3个日期位。