Problem:
Du vill konvertera en sträng till ett datum i din resultatuppsättning.
Exempel:
Vår databas har en tabell som heter accounts_creation
, med ett fält som heter company_id
av datatypen NUMBER och två NVARCHAR2-fält med namnet company_name
och registration_date
som visas nedan.
företags-id | företagsnamn | registreringsdatum |
---|---|---|
1 | Tionkamp | 5 januari 1978 |
2 | Vestel | 21 september 1991 |
3 | Vita kapellet | 18 oktober 2017 |
4 | Silverbägare | 4 dec 2021 |
5 | JohnnyBros | 28 augusti 1984 |
Vi vill konvertera strängkolumnen registration_date
i en datumkolumn.
Lösning:
Vi använder TO_DATE()
fungera. Här är frågan:
SELECT company_id, company_name, TO_DATE(registration_date,'DD Mon YEAR') AS registration_date FROM accounts_creation;
Här är resultatet av frågan:
företags-id | företagsnamn | registreringsdatum |
---|---|---|
1 | Tionkamp | 05-JAN-78 |
2 | Vestel | 21-SEP-91 |
3 | Vita kapellet | 18-OKT-17 |
4 | Silverbägare | 4-DEC-21 |
5 | JohnnyBros | 28-AUG-84 |
Diskussion:
TO_DATE(string, format)
funktion i Oracle konverterar ett strängvärde till ett datum. Funktionen tar två argument:strängen som ska konverteras och datumformatet. I formatspecifikationen, DD
betecknar dagen i månaden (1-31), MON betecknar månadens förkortade namn och YEAR
betecknar det 4-siffriga året. Du kan läsa mer om de tillgängliga formaten i Oracle SQL-dokumentationen här.