2016-10-20 2 views
0

Ich habe eine Spalte, die DateTime in einer MySQL-Datenbank speichert. Ich möchte den Datumsteil (und nicht die Zeit) mit dem aktuellen Tag vergleichen. Ich bin mir nicht sicher, welche Methode ich verwenden soll, da ich neu in PHP bin.
Formatieren einer DateTime-Spalte in PHP

$today=date("Y-m-d"); 
$sql="SELECT journey_id FROM tbl_journeys WHERE identity='$driver_id' AND DATE_FORMAT(`date`, '%Y %m %d')='$today'"; 

habe ich versucht auf diese Weise, aber es funktioniert nicht. In der Anweisung date ist eine Spalte in der Tabelle, die ich auf nur Jahr-Monat-Tag trimmen muss

+1

Warum verwenden Sie die MySQL-Funktion nicht für heute? 'UND DATUM (Datum) = HEUTE()' – Barmar

+0

Drehe den Datumsteil in die andere Richtung. Formatieren Sie die Variable $ today, nicht die Spalte. – Farkie

+1

'$ today' enthält' -' zwischen den Teilen des Datums, aber 'DATE_FORMAT()' setzt Leerzeichen zwischen ihnen. Wie erwarten Sie, dass sie gleich sind? – Barmar

Antwort

3

Sie verwenden unterschiedliche Zeichen zwischen Jahr, Monat und Tag in den beiden Formaten.

$today=date("Y-m-d"); 

legt Bindestriche zwischen ihnen, während

DATE_FORMAT(`date`, '%Y %m %d') 

Räume zwischen ihnen bringt.

Ändern Sie eine von ihnen, um die andere, z.B.

DATE_FORMAT(`date`, '%Y-%m-%d') 

Oder Sie könnten tun einfach alles in MySQL:

$sql="SELECT journey_id FROM tbl_journeys 
     WHERE identity='$driver_id' AND DATE(`date`) = TODAY()"; 
+0

Nach dem Hinzufügen von Bindestrichen und korrekt konfigurieren Server Zeit es funktionierte – Manny265