SELECT data = hoje/ontem/anteontem no MySQL

Publicado por Fábio Berbert de Paula em 16/06/2020

[ Hits: 20.694 ]

Blog: https://fabio.automatizando.dev

 


SELECT data = hoje/ontem/anteontem no MySQL



Sintaxe testada no MySQL e MariaDB, não faço ideia se o padrão SQL usado funcionará em outros SGBDs como PostgreSQL, Oracle, SQL Server etc.

Quero fazer uma consulta SQL que me retorne todos os registros cujo campo "data" corresponde a hoje:

SELECT * FROM tabela WHERE DATE(data) = CURDATE()

Quero fazer uma consulta SQL que me retorne todos os registros cujo campo "data" corresponde a ontem:

SELECT * FROM tabela WHERE DATE(data) = SUBDATE(CURDATE(), 1)

Quero fazer uma consulta SQL que me retorne todos os registros cujo campo "data" corresponde a anteontem:

SELECT * FROM tabela WHERE DATE(data) = SUBDATE(CURDATE(), 2)

Quero fazer uma consulta SQL que me retorne todos os registros cujo campo "data" corresponde a 7 dias atrás:

SELECT * FROM tabela WHERE DATE(data) = SUBDATE(CURDATE(), 7)

Simples assim. Até a próxima!

Outras dicas deste autor

Comando ifconfig no Debian 10

Desativando popups "O sistema detectou um problema no aplicativo" no Ubuntu

Configurando adaptador USB WIFI Realtek RTL190CT no Debian

Como capturar uma janela específica usando o ImageMagick

Descobrindo quais são seus dispositivos de entrada

Leitura recomendada

Perdeu a senha de root do MySQL? Recupere agora

Backup diferente no MySQL

Usando transações com MySQL

ERROR 1045 (28000) no MySQL 5 - Ubuntu 6.06

Configurando e utilizando MySQL no Arch Linux

  

Comentários
[1] Comentário enviado por NillOliveir em 08/07/2024 - 20:29h

Olá Fábio, Me ajude a desenrolar este select, fazendo um favor:
Faço o select com duas condições e em uma condição quero que mostre os registros com a data >= "maior ou igual" a data corrente

tblClientes(id, name, status, agenda, data_agenda)
status (1 = Ativo, 2 = Inativo)
agenda (1 = Marcada, 2 = Demarcada, 3 = Outras....)


SELECT * FROM tblClientes
WHERE status = 1 And agenda = 1 And data_agenda >= CURDATE()

Aqui acontece que a agenda existe outras opções, então preciso que as outras opções sejam selecionadas
data_agenda >= CURDATE() (Mostrar somente para a condição agenda seja maior ou igual a data corrente)

[2] Comentário enviado por fabio em 09/07/2024 - 01:36h


[1] Comentário enviado por NillOliveir em 08/07/2024 - 20:29h

Olá Fábio, Me ajude a desenrolar este select, fazendo um favor:
Faço o select com duas condições e em uma condição quero que mostre os registros com a data >= "maior ou igual" a data corrente

tblClientes(id, name, status, agenda, data_agenda)
status (1 = Ativo, 2 = Inativo)
agenda (1 = Marcada, 2 = Demarcada, 3 = Outras....)


SELECT * FROM tblClientes
WHERE status = 1 And agenda = 1 And data_agenda >= CURDATE()

Aqui acontece que a agenda existe outras opções, então preciso que as outras opções sejam selecionadas
data_agenda >= CURDATE() (Mostrar somente para a condição agenda seja maior ou igual a data corrente)


Se entendi o que você quer, a sintaxe abaixo deve funcionar:


SELECT * FROM tblClientes
WHERE status = 1
AND (
agenda != 1 OR
(agenda = 1 AND data_agenda >= CURDATE())
);



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts