sql >> Databasteknik >  >> RDS >> PostgreSQL

Få århundradet från ett datum i PostgreSQL

I Postgres kan du använda to_char() funktion för att returnera århundradet, baserat på ett givet datum.

För att göra detta, använd CC som det andra argumentet. Detta returnerar det tvåsiffriga århundradet baserat på det angivna datumet.

Exempel

Här är ett exempel att visa.

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

Resultat:

21

I det här fallet är datumet på 2000-talet, så jag får resultatet 21.

Observera att 2000-talet börjar 2001-01-01.

Här är vad som händer om jag använder ett datum innan dess.

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

Resultat:

20

Lägg till ordningsnummersuffixet

Du kan lägga till th eller TH till det andra argumentet för att lägga till ordinalindikatorn till århundradet.

th lägger till ett gement ordningstalssuffix och TH lägger till ett suffix med versaler.

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";

Resultat:

 2001 CCth | 2001 CCTH | 2000 CCth | 2000 CCTH 
-----------+-----------+-----------+-----------
 21st      | 21ST      | 20th      | 20TH

Bifoga "Century"

Århundradets värde och dess ordinarie indikator kan nu kopplas samman med strängen "Century" om det behövs.

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

Resultat:

21st Century!

  1. SQL väljer rader efter senaste datum med två unika kolumner

  2. En titt på Oracle Group-by Bug

  3. Vad betyder det att använda parenteser med ett OR i SQL?

  4. Flera begränsningar i tabellen:Hur får man alla överträdelser?