Comment vérifier si une date est dans le futur, pour des colonnes de date et d'heure distinctes ?
P粉021854777
P粉021854777 2023-07-31 19:18:47
0
1
554
<p>J'ai deux colonnes pour stocker les dates : l'une est la date elle-même au format AAAA-mm-jj et l'autre est l'heure dans le type de données time(7), par exemple 11:15:10.0000000. <br /><br />Comment puis-je vérifier les lignes futures ? <br /><br />Je peux obtenir la première partie, la date elle-même : </p><p><br /></p> <pre class="brush:php;toolbar:false;">MonModèle::where('date', '>=', Carbon::today())->get()</pre> <p>Mais quand j'essaye d'ajouter l'heure, ça ne marche pas : </p> <pre class="brush:php;toolbar:false;">MonModèle::where('date', '>=', Carbon::today())->where('time', '> ;', Carbon::now()->format('H:i'))->get()</pre> <p>Comme ils sont séparés, même si la date est dans le futur, l'heure est différente, il peut donc y avoir une incompatibilité horaire. Je dois donc fusionner d’une manière ou d’une autre la date et l’heure qui y sont associées, et non séparément. </p>
P粉021854777
P粉021854777

répondre à tous(1)
P粉651109397

Essayez de combiner deux colonnes en une seule condition.

$now = Carbon::now();

MyModel::whereRaw("CONCAT(`date`, ' ', `time`) >= ?", [$now->toDateTimeString()])->get();

Pour SQL Server, essayez ce qui suit.

MyModel::whereRaw("CONVERT(datetime, date + ' ' + CONVERT(varchar, time, 121)) >= ?", [$now->toDateTimeString()])->get();

La transformation des requêtes peut nécessiter une mise à jour, veuillez consulter la documentation pour plus d'informations.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal