
Um resumo sobre o WSL2
O WSL 2 (Windows Subsystem for Linux) representa um grande avanço na integração entre o Windows e o Linux, permitindo... Leia mais
Desenvolvedor de Software
Trabalhar com intervalos de datas é uma necessidade comum em aplicações web, especialmente em sistemas que lidam com eventos, agendamentos ou relatórios. Neste artigo, vamos explorar como usar o operador BETWEEN
entre duas colunas de data no Laravel, tanto com o Eloquent quanto com o Query Builder.
Imagine que você possui uma tabela eventos
com as colunas data_inicio
e data_fim
. Você quer consultar todos os eventos que acontecem em uma data específica, como 2024-11-10
. Em SQL, a consulta seria algo como:
SELECT *
FROM eventos
WHERE '2024-11-10' BETWEEN data_inicio AND data_fim;
No Laravel, podemos traduzir essa lógica de forma eficiente usando os recursos do framework.
O Eloquent é a forma mais elegante e intuitiva de trabalhar com o banco de dados no Laravel. Para aplicar o BETWEEN
, usamos a seguinte abordagem:
Exemplo:
use App\Models\Evento;
$dataConsulta = ‘2024-11-10’;
$eventos = Evento::whereBetween($dataConsulta, [‘data_inicio’, ‘data_fim’])->get();
whereBetween()
é usado para especificar o intervalo de comparação.data_inicio
e data_fim
delimitam o intervalo.No entanto, o whereBetween()
não funciona diretamente para comparar colunas no Eloquent. Nesse caso, precisamos usar DB::raw
.
O Query Builder é ideal para casos que exigem maior flexibilidade, como comparações entre colunas. Aqui está como podemos traduzir o BETWEEN
:
use Illuminate\Support\Facades\DB;
$dataConsulta = '2024-11-10';
$eventos = DB::table('eventos')
->whereRaw('? BETWEEN data_inicio AND data_fim', [$dataConsulta])
->get();
whereRaw
permite inserir expressões SQL personalizadas.?
e do array [$dataConsulta]
protege contra SQL Injection.data_fim
está entre data_inicio
e outra coluna, como data_limite
:
$eventos = DB::table('eventos')
->whereRaw('data_fim BETWEEN data_inicio AND data_limite')
->get();
Se preferir, você pode usar operadores lógicos em vez de BETWEEN
:
$dataConsulta = '2024-11-10';
$eventos = Evento::where('data_inicio', '<=', $dataConsulta)
->where('data_fim', '>=', $dataConsulta)
->get();
Consultar dados usando BETWEEN
entre colunas é uma tarefa simples no Laravel, tanto com o Eloquent quanto com o Query Builder. O uso de whereRaw
oferece a flexibilidade necessária para comparações entre colunas, enquanto operadores como >=
e <=
tornam sua consulta mais legível e direta.
Escolha a abordagem que melhor se adapta ao seu cenário e comece a explorar os intervalos de datas no Laravel de forma eficiente!
O WSL 2 (Windows Subsystem for Linux) representa um grande avanço na integração entre o Windows e o Linux, permitindo... Leia mais
Caso você sendo usuário Linux e precise instalar um gerenciador de SVN temos como alternativa o RABBITVCS. São apenas dois... Leia mais
Go (ou Golang) é uma linguagem de programação eficiente e fácil de usar, conhecida por sua simplicidade, sendo ideal para... Leia mais
Hoje boa parte dos banco de dados relacionais podem armazenar campos com valores no formato JSON o que garante maior... Leia mais