sql >> Databasteknik >  >> RDS >> Oracle

Lägg till Ordinal Indicator till ett datum i Oracle

I Oracle Database kan vi använda TH formatelement för att lägga till ordningstalssuffixet till resultatet av en TO_CHAR() operation vid formatering av datum.

Till exempel, istället för att mata ut 10 Feb vi kunde mata ut 10th Feb . Eller istället för att mata ut 21 century , kan vi mata ut 21st century . Detsamma gäller för stavat datumkomponenter. Till exempel istället för Twenty One , kan vi mata ut Twenty First .

Exempel

Här är ett exempel att visa:

SELECT TO_CHAR(DATE '2030-12-01', 'Ddth Month')
FROM DUAL;

Resultat:

01st December

Vi kan använda fm formatmodifierare för att ta bort den inledande nollan om det behövs:

SELECT TO_CHAR(DATE '2030-12-01', 'fmDdth Month')
FROM DUAL;

Resultat:

01st December

Observera att versaler i ordningsnumret bestäms av det relevanta formatelementet (i detta fall Dd del), inte TH ändelse.

Här är vad som händer när vi ändrar den andra d till versaler:

SELECT TO_CHAR(DATE '2030-12-01', 'fmDDth Month')
FROM DUAL;

Resultat:

1ST December

Så även om vi tillhandahöll den th suffix med gemener, det hade ingen inverkan på resultatet. Stora versaler bestämdes av formatelementet (inte inklusive fm). formatmodifierare).

Vi kan också lägga till ordningsnumret när vi returnerar andra datumkomponenter, till exempel århundradet:

SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;

Resultat:

21st Century

Stavade datum

Vi kan lägga till SP formatelement för att få datumdelen utskriven:

SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;

Resultat:

TWENTY-FIRST Century

Och vi kan använda versaler efter behov:

SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;

Resultat:

TWENTY-FIRST Century

Det här är vad som händer när vi utelämnar TH formatspecifikation:

SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;

Resultat:

Twenty-One

  1. Hur gör man en kolumn unik i SQL?

  2. Det gick inte att hitta en ingångspunkt med namnet "InterlockedIncrement" i DLL:n "kernel32.dll" - [e-postskyddad] 64 bitar

  3. Oracle hur man exporterar en fråga till en text/csv-fil

  4. Räknar antalet förekomster av ett tecken i Oracle SQL