No Postgres, você pode usar o
to_char()
função para retornar o século, com base em uma determinada data. Para fazer isso, use
CC
como segundo argumento. Isso retorna o século de dois dígitos com base na data fornecida. Exemplo
Aqui está um exemplo para demonstrar.
SELECT to_char(date '2001-03-20', 'CC');
Resultado:
21
Neste caso a data é no século 21, então obtenho um resultado de 21.
Observe que o século 21 começa em 2001-01-01.
Aqui está o que acontece se eu usar uma data anterior a essa.
SELECT to_char(date '2000-03-20', 'CC');
Resultado:
20
Adicione o sufixo do número ordinal
Você pode adicionar
th
ou TH
ao segundo argumento para adicionar o indicador ordinal ao século. th
adiciona um sufixo de número ordinal minúsculo e TH
adiciona um sufixo de número ordinal maiúsculo. SELECT
to_char(date '2001-03-20', 'CCth') AS "2001 CCth",
to_char(date '2001-03-20', 'CCTH') AS "2001 CCTH",
to_char(date '2000-03-20', 'CCth') AS "2000 CCth",
to_char(date '2000-03-20', 'CCTH') AS "2000 CCTH";
Resultado:
2001 CCth | 2001 CCTH | 2000 CCth | 2000 CCTH -----------+-----------+-----------+----------- 21st | 21ST | 20th | 20TH
Anexar “Século”
O valor do século e seu indicador ordinal agora podem ser concatenados com a string “Century”, se necessário.
SELECT
concat(to_char(date '2001-03-20', 'CCth'), ' Century!');
Resultado:
21st Century!