Do not speak Portuguese? Translate this site with Google or Bing Translator
Laravel - Registros entre duas datas MySQL Interval

Posted on: July 26, 2021 09:41 AM

Posted by: Renato

Categories: Laravel mysql eloquent

Views: 2100

 

Laravel - Obtenha registros entre duas datas usando MySQL Interval

whereBetween método Laravel  Query Builder fornece um método muito fácil de usar para consultar registros entre duas datas. 

Você pode simplesmente escrever um código como este:

$startDate = Carbon::createFromFormat('d/m/Y', '09/10/2020')->format('Y-m-d');
$endDate = Carbon::now()->format('Y-m-d');

Visit::whereBetween('date', [$startDate, $endDate])->get();

Mas o que acontece se você quiser usar o MySQL Interval Operator 

Por exemplo, consultas de visitas em que a data foi entre 2 anos atrás e 1 ano mais um mês atrás 

$startDate = " CURDATE() - INTERVAL 2 YEAR";
$endDate   = " CURDATE() - INTERVAL 1_1 YEAR_MONTH" ;

Visit::whereBetween('date', [$startDate, $endDate])->get();

Dá a seguinte consulta errada :

select * from `visits` 
where `date` between  'CURDATE() - INTERVAL 2 YEAR' and ' CURDATE() - INTERVAL 1_1 YEAR_MONTH'

Para usar o MySQL, Interval Operator você precisa usar o whereRawmétodo.

$startDate = " CURDATE() - INTERVAL 2 YEAR";
$endDate   = " CURDATE() - INTERVAL '1_1' YEAR_MONTH" ;

Visit::whereRaw('date BETWEEN '.$startDate.' and '.$endDate)->get();

Isso produz a seguinte consulta:

select * from `visits`
where date BETWEEN  CURDATE() - INTERVAL 2 YEAR and CURDATE() - INTERVAL '1_1' YEAR_MONTH

Função de intervalo

A tabela abaixo descreve a unidade associada à expressão da função de intervalo.

 

unit  Expression 
DAY DAYS
DAY_HOUR ‘DAYS HOURS’
DAY_MICROSECOND ‘DAYS HOURS:MINUTES:SECONDS.MICROSECONDS’
DAY_MINUTE ‘DAYS HOURS:MINUTES’
DAY_SECOND ‘DAYS HOURS:MINUTES:SECONDS’
HOUR HOURS
HOUR_MICROSECOND ‘HOURS:MINUTES:SECONDS.MICROSECONDS’
HOUR_MINUTE ‘HOURS:MINUTES’
HOUR_SECOND ‘HOURS:MINUTES:SECONDS’
MICROSECOND MICROSECONDS
MINUTE MINUTES
MINUTE_MICROSECOND ‘MINUTES:SECONDS.MICROSECONDS’
MINUTE_SECOND ‘MINUTES:SECONDS’
MONTH MONTHS
QUARTER QUARTERS
SECOND SECONDS
SECOND_MICROSECOND ‘SECONDS.MICROSECONDS’
WEEK WEEKS
YEAR YEARS
YEAR_MONTH ‘YEARS-MONTHS’
$from = date('2018-01-01');
$to = date('2018-05-02');

Reservation::whereBetween('reservation_from', [$from, $to])->get();

****

Reservation::all()->filter(function($item) {
  if (Carbon::now->between($item->from, $item->to) {
    return $item;
  }
});

****

Reservation::whereBetween('reservation_from', [$from1, $to1])
  ->orWhereBetween('reservation_to', [$from2, $to2])
  ->whereNotBetween('reservation_to', [$from3, $to3])
  ->get();

****

 

$fromDate = "2016-10-01";
$toDate   = "2016-10-31";

$reservations = Reservation::whereRaw(
  "(reservation_from >= ? AND reservation_from <= ?)", 
  [$fromDate." 00:00:00", $toDate." 23:59:59"]
)->get();

https://stackoverflow.com/questions/33361628/how-to-query-between-two-dates-using-laravel-and-eloquent

https://www.youtube.com/watch?v=FjHvM_wDf3I

#laravel #eloquent #mysql


1

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (157) Black Hat (3) front-end (28) linux (113) postgresql (39) Docker (26) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (40) Kubernetes (2) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (1) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (2) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1)

New Articles



Get Latest Updates by Email