Należy pamiętać, że formatowanie daty jest niezależne od miejsca przechowywania. Jeśli jest dla Ciebie ważne, aby data była zapisana w tym formacie będziesz musiał albo zdefiniować niestandardowy typ danych, albo zapisać go jako ciąg. Następnie możesz użyć kombinacji wyciągu , rzutowanie typów i konkatenację, aby uzyskać ten format.
Podejrzewam jednak, że chcesz zapisać datę i uzyskać format na wyjściu. Tak więc coś takiego załatwi Ci sprawę:
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).
(Zmieniono, aby użyć to_char).
Następnie możesz uzyskać wyniki takie jak:
SELECT id, to_char(my_date, 'yyyymm') FROM my_table;
Teraz, jeśli zrobiłeś naprawdę musisz przechowywać to pole jako ciąg i zapewnić format, który zawsze możesz zrobić:
CREATE TABLE my_other_table
(
id serial PRIMARY KEY not null,
my_date varchar(6) default to_char(CURRENT_DATE, 'yyyymm')
);