PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie setze ich einen Postgresql-Standardwert-Datumsstempel wie 'YYYYMM'?

Bitte beachten Sie, dass die Formatierung des Datums unabhängig von der Speicherung ist. Wenn es für Sie wichtig ist, dass das Datum gespeichert wird In diesem Format müssen Sie entweder einen benutzerdefinierten Datentyp definieren oder ihn als Zeichenfolge speichern. Dann können Sie eine Kombination aus extract verwenden , Typumwandlung und Verkettung, um dieses Format zu erhalten.

Ich vermute jedoch, dass Sie ein Datum speichern und das Format bei der Ausgabe erhalten möchten. Also, so etwas wie das wird für Sie ausreichen:

    CREATE TABLE my_table
    (
    id serial PRIMARY KEY not null,
    my_date date not null default CURRENT_DATE
    );

(CURRENT_DATE is basically a synonym for now() and a cast to date).

(Bearbeitet, um to_char zu verwenden).

Dann können Sie Ihre Ausgabe wie folgt erhalten:

SELECT id, to_char(my_date, 'yyyymm') FROM my_table;

Nun, wenn Sie das getan haben Sie müssen dieses Feld wirklich als Zeichenfolge speichern und das Format sicherstellen, das Sie immer verwenden könnten:

CREATE TABLE my_other_table
(
id serial PRIMARY KEY not null,
my_date varchar(6) default to_char(CURRENT_DATE, 'yyyymm')
);