【发布时间】:2011-04-29 06:52:14
【问题描述】:
我想在以下查询中按 date1 和 date2 之间的每一分钟进行分组。还应显示 0 值。所以应该显示日期之间的每一分钟。问题是表格中不存在这些日期。
SELECT
click.date as 'date',
COUNT(*)
FROM click
INNER JOIN short_url surl ON click.short_url_id = surl.id
INNER JOIN article_surl ON article_surl.article_id = 3
WHERE click.date BETWEEN (?Date1:'2011-04-24 13:33:00') AND (?Date2:'2011-04-24 15:33:00')
GROUP BY DATE_FORMAT(click.date, '%Y-%m-%d %H:%i:00');
我认为唯一的方法是制作一个临时表?这对性能有何影响?加入日期也不是很好,因为 click.date 在日期时间中也可能有毫秒。那么应该使用 DateFormat 吗? 也许在我的应用程序逻辑中这样做更好,读取数组并用 0 值填充缺失的日期。
【问题讨论】: