Ich benutze PHP, um auf eine MySQL-Datenbank zuzugreifen. Ich habe eine Tabelle wie folgt aufgebaut:MySQL-Filter für bestimmte Daten, wenn Daten gerade als UNIX-Zeitstempel gespeichert werden
Tabelle Header:
- id (INT, Autoinkrement), das Profil, Zeitstempel
Tabelleninhalt:
- 1, 12345678, 1513814399 (= 12/21/2017)
- 2, 13451983, 1513814400 (= 12/21/2017)
- 3, 12345678, 1513944000 (= 12/22/2017)
- 4, 12345678, 1513944001 (= 12/22/2017)
Die Tabelle zeigt, welche profileids wurden von einem Website-Besucher genannt worden, bei denen Zeit.
Also meine Frage ist jetzt, wie ist es möglich, zum Beispiel zu zeigen: "Geben Sie mir die Anzahl der Einträge für Profil Nr. 12345678 aufgerufen am 22.12.2017", die in diesem Fall "2" wäre .
Ich versuchte es mit dieser Abfrage:
SELECT COUNT(profileid), from_unixtime(timestamp, '%d') AS day, from_unixtime(timestamp, '%m') as month, from_unixtime(timestamp, '%Y') as year WHERE profileid='12345678' AND day=22 AND month=12 AND year=2017;
Aber es ist nicht möglich, die Spalten „Tag“ zugreifen zu können, „Monat“ und „Jahr“, weil sie in der Tabelle nicht existieren.
Kann mir jemand einen Tipp geben, wie man das macht? Ein anderer Weg wäre, drei neue Spalten zu erstellen (timestamp_day, timestamp_month und timestamp_year), aber das ist keine nette Lösung.
Vielen Dank im Voraus!
teha
Welchen Datentyp hat das "timestamp" -Feld? Warum nicht direkt als "Datum" einstellen? Es scheint unnötig, es in einem Format zu speichern, in dem die Konvertierung so verwendet werden muss, wie Sie es möchten. –
MySQL hat Datumsfunktionen wie 'DAY()', 'MONTH()' und 'YEAR() usw., die Sie auf Ihr Datumsfeld anwenden können. Siehe: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html –
Vielen Dank für Ihre Kommentare. Es hat den Typ Integer. Ich mache das so, weil ich daran gewöhnt bin, um ehrlich zu sein, und es ist schön, Zeitunterschiede zu berechnen. – teha