Aynı anda birden fazla mySQL tarih alanlarını biçimlendirme

3 Cevap php

I have a table with 12 timestamp columns and 3 other fields. I can't change the field type on the timestamp columns.

I need to display all 15 fields to the user as m/d/y. Is there a way to format them all at the same time without having to apply DATE_FORMAT to each one? I'd rather not have to do

SELECT DATE_FORMAT(field, '%c/%e/%y') AS field
for each one if possible.

Ben mySQL & istimal Dönüşüm olur nerede PHP ve umurumda değil.

3 Cevap

Eğer bunun gibi php basit bir tarih dönüştürme yordamı yazabilirsiniz:

function mysql2table($date) {
    $new = explode("-",$date);
    $a=array ($new[2], $new[1], $new[0]);
return $n_date=implode("-", $a);
}

Ben buradan çaldım ki: http://www.daniweb.com/code/snippet736.html#

SQL sütun sonuçları değer bir tarih olup olmadığını kontrol ve dönüştürme yoluyla Sonra sadece döngü.

Sizin için türlerini dönüştürebilirsiniz mdb2 veya PDO gibi bir veri katmanı, kullanarak düşündünüz mü? MDB2 YYYY-AA-GG biçimini gösterir ama kolayca strftime'a ve strtotime ile m / d / y dönüştü olabilecek bir tarih türü vardır.

Mdb2 kullanarak bir örnek:

$dsn = "mysql://user@pass/db"; (not sure about DSN format, you might have to poke the MDB2 documentation)
$connection = MDB2::connect ($dsn);
$connection->loadModule ("Extended");
$rows = $connection->getAll ("your query", array ('date', ...), $parameters, array (paramater-types), MDB2_FETCHMODE_OBJECT);

if (MDB2_Driver_Common::isError ($rows)) throw new Exception ("Error!");
else { foreach ($rows as $row) { ...Do something... } }

Sen MDB2 on InstallationWiki bu şekilde MDB kullanma hakkında daha fazla belgeleri bulabilirsiniz. Ayrıca orada bir MDB2 veritipinin listesini ve ne ekran değerleri için eşleştirilir bulacaksınız. Ayrıca, Docs for MDB2_Extended bilgi için iyi bir kaynak olacaktır.

Edit: Açıkçası ayrı ayrı her bir satırda strftime ve strtotime kullanmak gerekecek. Eğer MDB2_FETCHMODE_OBJECT için MDB2_FETCHMODE_ORDERED veya MDB2_FETCHMODE_ASSOC Yukarıda, muhtemelen reformasyon gereken tüm satırları üzerinde strftime ve strtotime çalıştırmak için bir foreach döngüsü kullanabilirsiniz geçerseniz .

Ben her datetime biçimlendirmeyi değiştirmek için bunu söylemek zorundayız, bu sonuçları döndüren kadar sorgu ne sütunlar bilmiyor mümkün olduğunu sanmıyorum.

Mat