Mysql “显示正确”;最受欢迎;日期

Mysql “显示正确”;最受欢迎;日期,mysql,sql,date,group-by,Mysql,Sql,Date,Group By,我在显示访问次数最多的日期时遇到了一些问题。以下是它在数据库中的外观: date_firstvisit 2012-11-25 15:49:16 2012-11-21 17:42:40 2012-11-21 15:36:04 2012-11-20 07:39:11 2012-11-19 09:19:36 2012-11-15 23:03:24 2012-11-15 22:57:47 2012-11-15 03:10:20 2012-11-15 03:10:14 此SQL查询应打印2012-11-

我在显示访问次数最多的日期时遇到了一些问题。以下是它在数据库中的外观:

date_firstvisit
2012-11-25 15:49:16
2012-11-21 17:42:40
2012-11-21 15:36:04
2012-11-20 07:39:11
2012-11-19 09:19:36
2012-11-15 23:03:24
2012-11-15 22:57:47
2012-11-15 03:10:20
2012-11-15 03:10:14
此SQL查询应打印
2012-11-15
,但仅打印
0000-00-00

SELECT date_firstvisit FROM visitors
GROUP BY DATE(date_firstvisit)
ORDER BY COUNT(date_firstvisit) DESC
LIMIT 1
如果我将
SELECT date\u firstvisit FROM visitors
替换为
SELECT*FROM visitors
它将打印
2012-11-28
。这当然是错误的

我不知道我的SQL查询出了什么问题,所以我现在问你,我是否遗漏了什么

编辑

此代码显示如何将数据打印到我的网站。根据njk的说法,这个SQL是正确的,但它只是继续打印
0000-00-00

$get_mostactive_date = $sql->query("SELECT DATE(date_firstvisit), COUNT(date_firstvisit) FROM visitors GROUP BY DATE(date_firstvisit) ORDER BY COUNT(date_firstvisit) DESC LIMIT 1");
$mostactive_date = $get_mostactive_date->fetch(PDO::FETCH_ASSOC);

echo $mostactive_date['date_lastactive'];

提前感谢。

您在
选择中缺少了
日期
功能。您还需要一个别名来处理使用
PDO
的函数

假设MySQL:

SELECT DATE(date_firstvisit) AS firstvisit, COUNT(date_firstvisit) AS count
FROM visitors
GROUP BY DATE(date_firstvisit)
ORDER BY COUNT(date_firstvisit) DESC
LIMIT 1

这将显示总访问次数相同的最高日期

SELECT DATE(date_firstvisit) Dates, COUNT(*) totalCount
FROM visitors
GROUP BY DATE(date_firstvisit)
HAVING COUNT(*) = 
(
  SELECT MAX(s)
  FROM(
  SELECT COUNT(*) s
  FROM visitors
  GROUP BY DATE(date_firstvisit))s
)

很遗憾,mysql甚至让原来的无效版本执行。@hobbs当我从mysql迁移到MSSQL时,它给了我很大的打击。这也很好,但并不完全满足要求。可能存在多个日期绑定的可能性。在这里插入您的查询,看看它是否仍然有效,
:D
@KuyaJohn(John Woo?)有效点!我们需要更多地了解数据是如何呈现的。@ErikEdgren尝试使用一个别名,例如
…DATE(DATE\u firstvisit)作为myDate
,另一个别名是
COUNT
这很完美,不知道OP是如何接受下面的答案的+1作为您的解决方案。@AnandPhadke我接受了njk的回答,因为我看不到Kuya SQL的优点:)我只看到了更多的行。。。某种程度上。请解释为什么这个SQL比下面的答案更好。编辑我现在看到了区别。太好了非常感谢!注意重复日期:D