Probleem:
U wilt een tekenreeks in uw resultatenset naar een datum converteren.
Voorbeeld:
Onze database heeft een tabel met de naam accounts_creation , met een veld met de naam company_id van het gegevenstype NUMBER en twee NVARCHAR2-velden met de naam company_name en registration_date zoals hieronder weergegeven.
| company_id | bedrijfsnaam | registratiedatum |
|---|---|---|
| 1 | Decathlon | 5 jan 1978 |
| 2 | Vestel | 21 sep 1991 |
| 3 | Witte Kapel | 18 okt 2017 |
| 4 | Silvercup | 4 december 2021 |
| 5 | JohnnyBros | 28 aug. 1984 |
We willen de stringkolom registration_date . converteren in een datumkolom.
Oplossing:
We gebruiken de TO_DATE() functie. Dit is de vraag:
SELECT company_id, company_name, TO_DATE(registration_date,'DD Mon YEAR') AS registration_date FROM accounts_creation;
Dit is het resultaat van de zoekopdracht:
| company_id | bedrijfsnaam | registratiedatum |
|---|---|---|
| 1 | Decathlon | 05-JAN-78 |
| 2 | Vestel | 21-SEP-91 |
| 3 | Witte Kapel | 18-OCT-17 |
| 4 | Silvercup | 4-DEC-21 |
| 5 | JohnnyBros | 28-AUG-84 |
Discussie:
De TO_DATE(string, format) functie in Oracle converteert een tekenreekswaarde naar een datum. De functie heeft twee argumenten:de tekenreeks die moet worden geconverteerd en de datumnotatie. In de formaatspecificatie, DD staat voor de dag van de maand (1-31), MON staat voor de afgekorte naam van de maand, en YEAR betekent het 4-cijferige jaar. U kunt hier meer lezen over de beschikbare formaten in de Oracle SQL-documentatie.