Zeitabfrage (Query Builder 8)
Zeitvergleich
Das Framework verfügt über integrierte häufig verwendete Zeitabfragemethoden und kann den Typ des Zeitfelds automatisch identifizieren, also nein Unabhängig davon, welcher Typ verwendet wird, können alle Zeitfelder die Zeitabfrageverwendung in diesem Kapitel einheitlich verwenden.
WhereTime-Methode verwenden
whereTime-Methode ermöglicht eine schnelle Abfrage von Datums- und Zeitfeldern. Das Beispiel lautet wie folgt:
// 大于某个时间 Db::name('user') ->whereTime('birthday', '>=', '1970-10-1') ->select(); // 小于某个时间 Db::name('user') ->whereTime('birthday', '<', '2000-10-1') ->select(); // 时间区间查询 Db::name('user') ->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1']) ->select(); // 不在某个时间区间 Db::name('user') ->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1']) ->select();
Sie können auch den folgenden Zeitausdruck für die Zeitabfrage verwenden
// 查询两个小时内的博客 Db::name('blog') ->whereTime('create_time','-2 hours') ->select();
Ein bestimmtes Zeitintervall abfragen
Für die Zeitintervallabfrage stellt das System auch die Verknüpfungsmethoden whereBetweenTime/whereNotBetweenTime zur Verfügung.
// 查询2017年上半年注册的用户 Db::name('user') ->whereBetweenTime('create_time', '2017-01-01', '2017-06-30') ->select(); // 查询不是2017年上半年注册的用户 Db::name('user') ->whereNotBetweenTime('create_time', '2017-01-01', '2017-06-30') ->select();
Ein bestimmtes Jahr abfragen
Die in diesem Jahr registrierten Benutzer abfragen
Db::name('user') ->whereYear('create_time') ->select();
Die im letzten Jahr registrierten Benutzer abfragen
Db::name('user') ->whereYear('create_time', 'last year') ->select();
Um die Daten eines bestimmten Jahres abzufragen, verwenden Sie
// 查询2018年注册的用户 Db::name('user') ->whereYear('create_time', '2018') ->select();
um die Daten eines bestimmten Monats abzufragen
Um die Benutzer abzufragen, die dies registriert haben Monat
Db::name('user') ->whereMonth('create_time') ->select();
Fragen Sie die im letzten Monat registrierten Benutzer ab
Db::name('user') ->whereMonth('create_time','last month') ->select();
Fragen Sie die im Juni 2018 registrierten Benutzer ab
Db::name('user') ->whereMonth('create_time', '2018-06') ->select();
Abfrage Eine bestimmte Woche
Fragen Sie die Daten dieser Woche ab
Db::name('user') ->whereWeek('create_time') ->select();
Fragen Sie die Daten der letzten Woche ab
Db::name('user') ->whereWeek('create_time', 'last week') ->select();
Fragen Sie die Nummer der Woche ab einem bestimmten Tag ab
// 查询2019-1-1到2019-1-7的注册用户 Db::name('user') ->whereWeek('create_time', '2019-1-1') ->select();
Fragen Sie die an einem bestimmten Tag registrierten Benutzer ab
Fragen Sie die an diesem Tag registrierten Benutzer ab
Db::name('user') ->whereDay('create_time') ->select();
Fragen Sie die gestern registrierten Benutzer ab Benutzer
Db::name('user') ->whereDay('create_time', 'yesterday') ->select();
kann die Daten eines bestimmten Tages mithilfe von
// 查询2018年6月1日注册的用户 Db::name('user') ->whereDay('create_time', '2018-06-01') ->select();
abfragen. Der Zeitfeldintervallvergleich
kann unterstützt werden Intervallvergleich zweier Zeitfelder
// 查询有效期内的活动 Db::name('event') ->whereBetweenTimeField('start_time', 'end_time') ->select();
Die obige Abfrage entspricht
// 查询有效期内的活动 Db::name('event') ->whereTime('start_time', '<=', time()) ->whereTime('end_time', '>=', time()) ->select();
Benutzerdefinierten Zeitabfrageregeln
Sie können benutzerdefinierte time_query_rule hinzufügen, indem Sie time_query_rule in der Datenbankkonfigurationsdatei Defined festlegen Zeitabfrageregeln
'time_query_rule' => [ 'hour' => ['1 hour ago', 'now'], ]