Eu tenho um banco de dados/tabela MariaDB que contém entradas de log. Para fins de exemplo e ajuda mais ampla a outros usuários, vamos chamar a tabela FOO_TABLE
e o campo FOO_TIMESTAMP
.
O FOO_TIMESTAMP
campo tinha um tipo de dados datetime
. Exemplos de conteúdo incluem:
select FOO_TIMESTAMP from FOO_TABLE limit 10;
+---------------------+
| FOO_TIMESTAMP |
+---------------------+
| 2013-01-21 12:28:17 |
| 2013-02-06 08:54:05 |
| 2013-02-06 08:59:55 |
| 2013-02-06 09:05:46 |
| 2013-02-06 11:47:38 |
| 2013-02-06 12:14:04 |
| 2013-02-06 12:15:05 |
| 2013-02-06 12:42:45 |
| 2013-02-06 13:01:49 |
| 2013-02-06 13:20:50 |
+---------------------+
10 rows in set (0.00 sec)
Eu quero obter uma contagem de quantas linhas foram criadas por dia . Não estou interessado no tempo específico. Por exemplo, gostaria das seguintes informações do conjunto de dados acima:
2013-01-21 1
2013-02-06 9
Pesquisei sites de troca de pilha anteriores e vi muitas referências à GROUP BY
opção, mas não tenho certeza de como filtrá-la apenas na data ... e não ver em tempo integral também.
Posso obter a data por si só executando, select date(FOO_TIMESTAMP) from FOO_TABLE;
mas ainda não consigo contar as ocorrências disso.
Pensei em tentar algo como select date(FOO_TIMESTAMP) as DATEONLY from FOO_TABLE group by DATEONLY;
, mas isso ainda não me dá contagem de ocorrências de datas.
O que estou perdendo aqui?
Você só precisa formatar o carimbo de data/hora para que mostre apenas o dia e, em seguida, agrupar por isso: