2012-11-06 10 views
10

私は日付の列を持つテーブルを持っています。 postgresを使うと、Y-m-d形式で日付を書くことができます。しかし、私はd/m/Y形式の日付が必要です。それを変更するには?PostgreSQLでデータスタイルを変更するには?

私はこの形式で

テーブルで
"ISO, DMY" 

そして、入力日付13/02/2009

をしかし、私は再び閉じて、開いているテーブルときに私はこの2009-02-13を参照してください。

show datestyle; 

私が手。 JDBCでは、この形式の日付も指定できます。私は間違って何をしていますか?次のように

+0

http://www.google.com.au/search?q=postgresql+format+date –

+1

ISO 8601フォーマットを使用してデータベースに話をし、別のレイヤーにフォーマットの問題を残すことをおすすめします。 –

+0

@muistooshort絶対に。編集する前に、この質問は「日付をフォーマットするにはどのようにto_charを使用すればよいのですか」という文字化けしたバージョンのように見えますが、日付I/Oについて話しているなら、 to_char'と 'to_timestamp'で、クライアントとの会話には他のフォーマットが必要です。 –

答えて

7

YYYY-MM-DDを日付フィールド、そのISO 8601形式のための推奨フォーマットです。

postgresql.confファイルで形式を変更できます。日付/時刻のスタイルがSET 日付書式のコマンドを使用して、ユーザが選択することができ

document状態

、postgresql.confの コンフィギュレーションファイル、または上のPGDATESTYLE環境変数内のDateStyleパラメータ サーバーまたはクライアント。書式化関数to_charは、 で、日付/時刻出力の書式を設定するためのより柔軟な方法としても利用できます。

+1

SET datestyle(sql、MDY);私はこれを試してもうまくいかない。 –

+0

環境変数 'PGDATESTYLE'を試してみましたか? –

+0

'postgresql.conf'では、スタイルを' datestyle = 'sql、dmy''に変更し、ヘッペンは何もしません。 –

4

はあなたの日付とto_char機能を使用します。

select to_char(date_column1, 'Mon/DD/YYYY'); 
+0

Okeyが動作します。しかし、私は私の選択で膨大な数の列を持っていますが、今ではすべての列を選択するために使用できません。クエリではなくポストグルのデータスタイルを変更する可能性はありますか? –

+0

@KliverMaxいいえ、postgresは日付を保存しますが、取得時にフォーマットされます。 – hd1

2

可能であれば、DATESTYLEを使用しないでください。セッション内のすべてのコードに影響します。たとえば、ストアドプロシージャのようなものがあり、その定義に明示的なオーバーライドDATESTYLEが設定されていない可能性があります。

可能であれば、日付出力にはto_char、日付入力にはto_timestampを使用してください。曖昧な日付形式、たとえばD/M/Yを使用する必要がある場合はいつでも使用してください。残りの時間はISOの日付を使用します。

1

あなたものPostgreSQLコンソールでコマンド

set datestyle to [your new datestyle]; 

を使用することができます。

+0

これは、しかし、セッションの変更。 –

関連する問題