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.