PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Obtenha o século de uma data no PostgreSQL


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!