sql >> Database >  >> RDS >> Oracle

Hoe de datum uit een string in Oracle te halen

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.


  1. Haal de naam van een kolom uit de ID in SQL Server:COL_NAME()

  2. Hoe werkt het ophalen van gegevens van SQL Server naar SqlDataReader?

  3. Door komma's gescheiden resultaten in SQL

  4. PL/SQL:hoe vraag ik gebruikersinvoer in een procedure?