2010-12-20 7 views
2

Ich habe diese PHP-Skript, das ich unverändert halten möchten:PostgreSQL: Wie formatiert man Datum ohne to_char() zu verwenden?

$display = array(
    'QDATETIME', 
    'ID', 
    'NAME', 
    'CATEGORY', 
    'APPSVERSION', 
    'OSVERSION', 
); 

$sql = sprintf(" 
    select %s from quincytrack 
    where qdatetime > (now() - interval '2 day') and 
    qdatetime <= now()", 
    join(', ', $display)); 
$sth = $pg->prepare($sql); 
$sth->execute($args); 

Mein Problem ist, dass QDateTime als 2010-12-18 15.51.37 gedruckt wird, während ich es als brauchen 2010-12-18. Ich weiß, ich nennen könnte to_char (QDateTime, ‚YYYY-MM-DD‘) als QDateTime, aber würde es vorziehen, eine andere Art und Weise zu finden, das Datum Ausgabeformat zu beeinflussen ...

Mit PostgreSQL 8.4.5 unter CentOS 5.5 Linux/64 Bit.

Vielen Dank! Alex

+1

'TO_CHAR' wurde speziell für die Formatierung der Ausgabe entwickelt. Warum willst du es nicht benutzen? – Quassnoi

Antwort

3

Ein besserer Ansatz, als sich auf die Datenbank für die Datumsformatierung zu verlassen, wäre, sich auf PHP zu verlassen.

echo date("Y-m-d", strtotime($row['column'])); 

Diese beide löst Ihr ursprüngliches Problem (die Aussage verwirrend beitreten, wenn Ihre Abfrage Aufbau), und gibt Ihnen auch viel mehr Flexibilität (zB vielleicht später einen Benutzer eine Präferenz für bevorzugtes Datumsformat einstellen kann), und mehr Skalierbarkeit (je mehr Arbeit Sie in PHP tun können, die unbegrenzt horizontal skalierbar ist, desto besser).

2

Gerade CAST-Datentyp DATE:

SELECT 
    CAST('2010-12-18 15:51:37' AS DATE); 
+0

Er/sie möchte sein/ihr PHP-Skript nicht ändern ... –

+1

Dies hängt von der Einstellung "date style" ab. – Quassnoi

0

Wenn Sie nicht wollen, Ihre PHP-Skript ändern, können Sie versuchen, datestyle Konfigurationsparameter einstellen.

Ich würde empfehlen, dass Sie nur Ihr PHP-Skript ändern. Das Ändern einer globalen Serverkonfiguration kann sich auf andere Dinge auswirken, die derzeit auf Ihrem Server ausgeführt werden.

+0

Vielen Dank für diese Information –

Verwandte Themen