2016-09-20 4 views
1

I Tabelle mit drei fileds in mysql habenholen Zeilen, die heute Zeitstempel in php mysql entspricht

id 
name 
time_stamp 

hier time_stamp speichert time() Wert PHP.

Ich möchte die Felder, die heutigen Zeitstempel entspricht, jetzt alle Zeilen abrufen und überprüfen Zeitstempel Bedingung in der Schleife, wenn es übereinstimmt, wird die aktuelle Zeile gedruckt.

Gibt es sowieso in mysql Abfrage selbst dies zu tun?

+0

Welche Code haben Sie immer noch versucht. Veröffentlichen Sie das so, dass es für uns nützlich ist, Ihnen den Fortschritt zu gewährleisten. –

+0

Überprüfen Sie diese http://stackoverflow.com/questions/14769026/mysql-select-where-timestamp-today – Sasikumar

+0

Sie sollten gehen für 'SELECT * FROM 'Tabelle' WHERE DATUM ('time_stamp') = NOW()' – Akshay

Antwort

3

Da Sie Unix-Zeitstempel einfügen (time()), brauchen Sie nicht alle Zeilen zu holen und einen Vergleich über den Abruf zu machen. Nur FROM_UNIXTIME() in MySQL verwenden:

SELECT * FROM table_name WHERE FROM_UNIXTIME(`time_stamp`, '%Y-%m-%d') = CURDATE() 

Fiddle

+0

Ja, es hat funktioniert –

0

Sie können nun() oder CURRENT() Funktion für die

0

Sie können in der Datenbank eines zwischen tun Aufzeichnungen von heute zum Beispiel zu erhalten, oder Sie können Datum auf das angegebene Format konvertieren, die Sie benötigen.

zu Menschen lesbaren können Sie http://www.w3schools.com/sql/func_date_format.asp

verwenden, wenn der Fall ist nur die Verwendung zwischen mit date_format und wählen Sie, was Sie brauchen.

Ich hoffe, Ihnen helfen,

1

Sie speichern UNIX_TIMESTAMP.

Es gibt also einen Weg:

SELECT * FROM table_name WHERE FROM_UNIXTIME( time_stamp , '%Y-%m-%d') = CURDATE() @Ghost dies bereits in seiner Antwort geschrieben

Aber ein mögliches Problem bei diesem Ansatz ist, dass Sie keinen Gebrauch von Index (falls vorhanden) machen auf time_stamp Spalte.

Hier andersrum:

SELECT * FROM 
table_name 
WHERE time_stamp BETWEEN UNIX_TIMESTAMP(CURDATE()) AND (UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY) - 1)