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.