sql >> Database teknologi >  >> RDS >> Oracle

Sådan får du datoen fra en streng i Oracle

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.


  1. I Rails, kunne ikke oprette database for {adapter=>postgresql,

  2. Hvordan returnerer man flere værdier i én kolonne (T-SQL)?

  3. Er det muligt at have en indekseret visning i MySQL?

  4. Indstilling af Django til at bruge MySQL