Denne vejledning viser dig, hvordan du bruger to_date-funktionen til at konvertere en given inputstreng til en datodatatype.
Orale to_date() Funktion
Funktionen to_date() i Oracle giver dig mulighed for at caste en given strengdato literal ind i en datotype.
Funktionens syntaks:
TO_DATE(char [, fmt [, 'nlsparam' ] ])
Funktionen accepterer tre hovedargumenter:
- Det første argument er char, som definerer inputdatostrengen. Indgangsværdien kan være CHAR, VARCHAR2, NCHAR eller NVARCHAR2.
- fmt – Den anden parameter er fmt. Denne parameter definerer dato- og tidsmodelformatet for inputværdien. Du kan springe denne parameter over, hvis inputværdien følger standardformatet DD-MON-YY, for eksempel 01-JAN-2022.
Hvis formatet er juliansk, repræsenteret som J, skal inputværdien være en heltalstype.
Indtastningsværdien kan omfattes i følgende formater:
- nlsparam – Til sidst bruges parameteren nlsparam til at angive sproget for data og måned i strengen. Formatet er NLS_DATE_FORMAT = sprog. Oracle vil som standard bruge standardsproget for din session.
Eksempel på funktionsbrug
Følgende er eksempler på to_date-funktionen i Oracle-databasen:
Eksempel 1 – Grundlæggende konvertering
Eksemplet nedenfor viser, hvordan man bruger to_date-funktionen til at konvertere en given tegnstreng til en dato.
select to_date('10. januar 2023', 'Måned dd, ÅÅÅÅ')fra dobbelt;
I dette tilfælde konverterer vi den givne datostreng til en datotype ved at bruge formatet Måned dd, ÅÅÅÅ.
Den resulterende værdi vises:
TO_DATE('JANUARY102023','MONTHDD,YYYY')2023-01-10
Eksempel 2 – Konverter dato og tid til datotype
Det andet eksempel illustrerer, hvordan man konverterer en given tegnstreng til dato.
vælg to_date('10. januar 2023, 1:03', 'Måned dd, ÅÅÅÅ, HH:MI P.M.')
fra dobbelt;[/cc]
I dette tilfælde skal vi angive tidsformatet som HH:MI P.M.
Det resulterende output er som vist:
TO_DATE('JANUARY10,2023,1:03','MONTHDD,YYYY,HH:MIP.M.')10-01-2023 01:03:00
Eksempel 3 – Angivelse af sprogparameteren
Overvej eksemplet nedenfor, der viser, hvordan man bruger to_date-funktionen med parameteren nls_date_language.
select to_date('10. januar 2023, 1:03', 'D. Måned, ÅÅÅÅ, HH:MI P.M.', 'nls_date_language=amerikansk')fra dobbelt;
Dette skulle returnere værdien:
10-01-2023 01:03:00Når vi ændrer sessionssproget som:
alter session set nls_territory = 'Australien';Konverter tiden.
select to_date('10. januar 2023, 1:03', 'D. Måned, ÅÅÅÅ, HH:MI P.M.', 'nls_date_language=amerikansk')fra dobbelt;
Konklusion
I dette indlæg udforsker vi brugen af to_date-funktionen i Oracle-databasen til at konvertere en given inputdato bogstavelig til datotype.