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
455

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.

Comment puis-je vérifier les lignes futures ?

Je peux obtenir la première partie, la date elle-même :


MonModèle::where('date', '>=', Carbon::today())->get()

Mais quand j'essaye d'ajouter l'heure, ça ne marche pas :

MonModèle::where('date', '>=', Carbon::today())->where('time', '> ;', Carbon::now()->format('H:i'))->get()

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粉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
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!