Problem:
Du vil gerne konvertere en streng til en dato i dit resultatsæt.
Eksempel:
Vores database har en tabel med navnet accounts_creation
, med et felt med navnet company_id
af datatypen NUMBER og to NVARCHAR2-felter med navnet company_name
og registration_date
som vist nedenfor.
virksomheds-id | virksomhedsnavn | registrationsdato |
---|---|---|
1 | Tikamp | 5. januar 1978 |
2 | Vestel | 21. september 1991 |
3 | Hvide Kapel | 18. oktober 2017 |
4 | Sølvbæger | 4. december 2021 |
5 | JohnnyBros | 28. august 1984 |
Vi ønsker at konvertere strengkolonnen registration_date
ind i en datokolonne.
Løsning:
Vi bruger TO_DATE()
fungere. Her er forespørgslen:
SELECT company_id, company_name, TO_DATE(registration_date,'DD Mon YEAR') AS registration_date FROM accounts_creation;
Her er resultatet af forespørgslen:
virksomheds-id | virksomhedsnavn | registrationsdato |
---|---|---|
1 | Tikamp | 05-JAN-78 |
2 | Vestel | 21-SEP-91 |
3 | Hvide Kapel | 18-OKT-17 |
4 | Sølvbæger | 4-DEC-21 |
5 | JohnnyBros | 28-AUG-84 |
Diskussion:
TO_DATE(string, format)
funktion i Oracle konverterer en strengværdi til en dato. Funktionen tager to argumenter:strengen, der skal konverteres, og datoformatet. I formatspecifikationen DD
betegner dagen i måneden (1-31), MON betegner månedens forkortede navn, og YEAR
betegner det 4-cifrede årstal. Du kan læse mere om de tilgængelige formater i Oracle SQL-dokumentationen her.