php / mysql - DATE_FORMAT ve saat bölümü

2 Cevap php

Özür dilemek bu zaten birçok kez cevap olmuştur, ama ben cevap bulamadı ve ben afallamış olsaydı.

Ben görünüşte ben veritabanında çalıştırdığınızda istediğim sonucu çıktılar bir mysql sorgusu var - PHP ile sorguyu çalıştırdığınızda, ancak bu çıkışı doğru değil.

Veritabanında, tarih böyle saklanır:

2009-08-13T00:00:00

Ne yapmak istiyorum bugünün tarihinden daha eski verileri görüntülemek DEĞİLDİR. Peki, nerede yan tümcesi bu yapmaktır:

		WHERE dateField1 >= DATE_FORMAT(now(),'%Y-%m-%d') AND dateField2 >= DATE_FORMAT(now(),'%Y-%m-%d')

Niyetim ben gece yarısı şimdi zaman parçası () dönüştürmek için bir yol bulmak için mücadele gibi, saat bölümünü şerit etmektir.

Bu benim PhpMyAdmin üzerinde çalıştırdığınızda iş gibi görünüyor, ama ben php komut dosyası çalıştırdığınızda öyle değil.

Herhangi bir fikir?

Çok teşekkürler!

2 Cevap

Bu benim PhpMyAdmin üzerinde çalıştırdığınızda iş gibi görünüyor, ama ben php komut dosyası çalıştırdığınızda öyle değil.

Sen sprintf sen dize oluşturmak için gibi bir şey kullanıyor musun? Eğer öyleyse, % başka % ile kaçmak gerekiyor

Her durumda, işlevini kullanabilirsiniz DATE()

WHERE `dateField1` > DATE(NOW())

nickf hakkıdır. Ben buna da katılmıyorum.

SQL arama yapmak için sprintf () işlevini kullanarak durumunda, bu içine sorgu dönüşebilir:

  $query = sprintf("SELECT * FROM SOME_TABLE WHERE id=%s AND dateField1 >= DATE_FORMAT(now(),'%%Y-%%m-%%d') AND dateField2 >= DATE_FORMAT(now(),'%%Y-%%m-%%d')", $id);
//Then submit $query for SQL query processing...

Sprintf'i kullanırken PHP) (tür belirleyici olarak% görüyorum.

Bu kaçmak için, yani%% Y veya%% m veya%% d, MySQL biçim dize önünde bir daha% eklemeniz gerekir. MySQL sorgusu için gerçek çıkış tekrar% Y veya% m% d olacaktı.