Como posso exibir e contar os valores cujas datas são ontem? Eu costumava time()
inserir a data no banco de dados. Exemplo:
URL: google.com youtube.com google.com youtube.com test.com youtube.com
DateVisited: 1313668492 1313668540 1313668571 13154314
Desejo exibir quantos URLs que possuem múltiplos existiam na tabela e também quantos desses URLs foram visitados ontem. Resultado de exemplo:
LINK | timesExisted | timesVisitedYesterday
Google.com | 2 | 2
youtube.com| 3 | 3
Já tenho a ideia de pegar a data de ontem, mas não tenho ideia de contar quantas vezes existiu um URL para ontem e quantas vezes existiu um URL na tabela.
Você pode usar:
ou
ou
ou
fonte
Você pode obter a data de ontem usando a expressão
CAST(NOW() - INTERVAL 1 DAY AS DATE)
. Então, algo assim pode funcionar:fonte
Consulta das últimas semanas:
fonte
Cálculo da última ou próxima data, semana, mês e ano. Pode ser útil para qualquer pessoa.
Data atual:
Ontem:
Amanhã:
Última 1 semana:
Próxima semana:
Último 1 mês:
Próximo mês:
Mês atual:
Último 1 ano:
Próximo 1 ano:
fonte
Embora a resposta escolhida seja correta e mais concisa, eu defenderia a estrutura observada em outras respostas:
Se você só precisa de uma data simples sem carimbo de data / hora, também pode escrevê-la da seguinte forma:
A razão para usar
CAST
versusSUBDATE
é aCAST
sintaxe ANSI SQL.SUBDATE
é uma implementação específica do MySQL do componente aritmético de datas deCAST
. Adquirir o hábito de usar a sintaxe ANSI pode reduzir as dores de cabeça, caso você precise migrar para um banco de dados diferente. Também é bom ter o hábito como prática profissional, pois é quase certo que você trabalhará com outros SGBDs no futuro.Nenhum dos principais sistemas DBMS é totalmente compatível com ANSI, mas a maioria deles implementa o amplo conjunto de sintaxe ANSI, enquanto quase nenhum deles fora do MySQL e seus descendentes (MariaDB, Percona, etc) implementará a sintaxe específica do MySQL.
fonte
Eu adaptei uma das respostas acima do cdhowie porque não consegui fazê-la funcionar. Isso parece funcionar para mim. Suspeito que também seja possível fazer isso com a função UNIX_TIMESTAMP usada.
fonte