Verbessern Sie Datumsberechnungen mit dem AND-Operator
P粉554842091
P粉554842091 2024-03-22 12:11:14
0
1
303

Ich bin mir sicher, dass das eine einfache Lösung ist, aber ich kann sie nirgends finden. Ich versuche, AND zu verwenden, um die Ergebnisse einer Abfrage zu beeinflussen. Die Abfrage lautet wie folgt.

select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
from table1
where log_in < date_opened;

Die erste Abfrage funktioniert also einwandfrei. Es werden mir nur Zeilen angezeigt, in denen das Anmeldedatum kleiner als das Öffnungsdatum ist, und dann die Gesamtdifferenz in Tagen zwischen den beiden, was großartig ist. Allerdings möchte ich der Abfrage AND hinzufügen, um bestimmte Summen auszuschließen. Zum Beispiel das folgende Beispiel:

select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
from table1
where log_in < date_opened and date_diff > 1;

Das Problem ist, dass die Alias-Spalte date_diff nicht als echte Spalte erkannt wird und ich daher eine Fehlermeldung erhalte. Ich habe versucht, HAVING anstelle von AND zu verwenden, aber das funktioniert nicht (nicht das, was ich dachte). Grundsätzlich möchte ich Zeilen mit Nullen ausschließen. Weiß jemand, was ich anstelle von „and date_diff > 1“ verwenden würde?

P粉554842091
P粉554842091

Antworte allen(1)
P粉308089080

重复 where 子句中的表达式(即使用 datediff(log_in, date_opened) > 1 而不是 date_diff > 1),或者使用派生表,然后在封闭的查询中添加条件。

使用派生表的示例:

select first_name, log_in, date_opened, date_diff
from (
    select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
    from table1
    where log_in  1
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!