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!