
Extensões Visual Studio Code para o dia a dia
Segue uma lista das extensões que mais utilizo em meu dia a dia como desenvolvedor quando uso o editor VisualStudio... 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!
Segue uma lista das extensões que mais utilizo em meu dia a dia como desenvolvedor quando uso o editor VisualStudio... Leia mais
O Design Pattern Facade é uma solução elegante para simplificar a interface de um subsistema complexo, tornando-o mais fácil de... Leia mais
A escolha entre programação orientada a objetos (OOP) e programação funcional (FP) é mais do que uma preferência de estilo;... Leia mais
O WSL 2 (Windows Subsystem for Linux) representa um grande avanço na integração entre o Windows e o Linux, permitindo... Leia mais