mysql - Gibt es in PHP eine Möglichkeit, zu vergleichen, ob Jahr, Monat und Tag zweier Uhrzeiten gleich sind?

WBOY
Freigeben: 2023-03-02 11:36:01
Original
1947 Leute haben es durchsucht

Mein Datenbestand enthält möglicherweise Zeitstempel mit nur Jahr, Monat und Tag. Wenn sie gleich sind, kann ich das abfragen zur Beurteilung und Abfrage? Vielen Dank.

Antwortinhalt:

Mein Datenbestand enthält möglicherweise Zeitstempel mit nur Jahr, Monat und Tag. Wenn sie gleich sind, kann ich das abfragen zur Beurteilung und Abfrage? Vielen Dank.

Es gibt eine ganze Reihe von Methoden, aber ich denke, Sie benötigen eine Fuzzy-Abfrage, deshalb werde ich über eine sprechen, die leichter zu verstehen ist
1. Verwenden Sie die Zeit nur mit „Jahr-Monat-Tag“. Die Sortierzeitfunktion wandelt es in einen Zeitstempel um, sodass Sie die Zeit um 0 Uhr an diesem Tag erhalten time1;
2 Verwenden Sie weiterhin die Funktion sorttime, um die Zeit +1 zu erhalten, oder Sie können die Gesamtzahl der Sekunden in a direkt hinzufügen Tag, der Variablenname ist time2 , also gibt es 2 Zeitknoten
3. Verwenden Sie zwischen Abfragen, damit Sie alle Daten des Tages erhalten können
========= Wenn ich es verstehe falsch, bitte korrigieren Sie mich und ich werde es erneut versuchen. Ändern =========

Wir stellen zwei Methoden vor, die erste wird empfohlen

  • Solange Jahr, Monat und Tag gleich sind, bedeutet dies, die Daten innerhalb eines bestimmten Tagesbereichs abzufragen und den Zeitbereich aktiv zu steuern, beispielsweise die Daten vom 28.10.2016 abzufragen '

<code>$st = strtotime("2016-10-28");
$et = strtotime("2016-10-28 23:59:59");
select * from table where date_field between $st and $et</code>
Nach dem Login kopieren
  • Eingebaute Funktion mysql direkt verwenden FROM_UNIXTIME(date_field, '%Y%m%d')

<code>select * from table where FROM_UNIXTIME(date_field,'%Y%m%d') ="2016-10-28"
</code>
Nach dem Login kopieren

Das Folgende ist das gespeicherte Feld im datetime-Formatsql

<code>select * from table where date_field between "2016-10-28" and "2016-10-28 23:59:59"</code>
Nach dem Login kopieren
<code>select * from table where DATE_FORMAT(date_field , '%Y%m%d') ="2016-10-28"</code>
Nach dem Login kopieren

Wenn die Datumsformate in der Datenbank gleich sind, verwenden Sie die Substr-Funktion von MySQL, um das Datum abzufangen und es dann zu vergleichen

Die Frage des Posters lautet eigentlich:
Fragen Sie die Daten eines bestimmten Tages (z. B. 28. Oktober 2016) basierend auf dem Zeitfeld ab:

<code><?php
$min = strtotime('2016-10-28');
$max = strtotime('2016-10-29');
echo "select * from t where time >= $min and time < $max";
// 输出 select * from t where time >= 1477584000 and time < 1477670400</code>
Nach dem Login kopieren

Wenn das Zeitfeld time keinen Zeitstempel, sondern Daten im Datumsformat ('YmdHis') speichert, können Sie Folgendes tun:

<code>select * from t where time >= 20161028000000 and time < 20161029000000</code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage