sql >> Base de Datos >  >> RDS >> PostgreSQL

Obtenga el siglo de una fecha en PostgreSQL

En Postgres, puede usar to_char() función para devolver el siglo, en función de una fecha dada.

Para hacer esto, use CC como segundo argumento. Esto devuelve el siglo de dos dígitos según la fecha proporcionada.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

SELECT to_char(date '2001-03-20', 'CC');

Resultado:

21

En este caso, la fecha es del siglo XXI, por lo que obtengo un resultado de 21.

Tenga en cuenta que el siglo XXI comienza el 2001-01-01.

Esto es lo que sucede si uso una fecha anterior a esa.

SELECT to_char(date '2000-03-20', 'CC');

Resultado:

20

Agregue el sufijo del número ordinal

Puede agregar th o TH al segundo argumento para agregar el indicador ordinal al siglo.

th agrega un sufijo de número ordinal en minúsculas y TH agrega un sufijo de número ordinal en mayúsculas.

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

Agregar "Siglo"

El valor del siglo y su indicador ordinal ahora se pueden concatenar con la cadena "Century" si es necesario.

SELECT 
  concat(to_char(date '2001-03-20', 'CCth'), ' Century!');

Resultado:

21st Century!