Denna handledning visar dig hur du använder to_date-funktionen för att konvertera en given indatasträng till en datumdatatyp.
Orale to_date() Funktion
Funktionen to_date() i Oracle låter dig gjuta ett visst strängdatum bokstavligt till en datumtyp.
Funktionens syntax:
TO_DATE(char [, fmt [, 'nlsparam' ] ])
Funktionen accepterar tre huvudargument:
- Det första argumentet är char, som definierar indatasträngen. Ingångsvärdet kan vara CHAR, VARCHAR2, NCHAR eller NVARCHAR2.
- fmt – Den andra parametern är fmt. Den här parametern definierar datum- och tidsmodellformatet för inmatningsvärdet. Du kan hoppa över denna parameter om inmatningsvärdet följer standardformatet DD-MÅN-ÅÅ, till exempel 01-JAN-2022.
Om formatet är julianskt, representerat som J, måste inmatningsvärdet vara en heltalstyp.
Inmatningsvärdet kan omfattas i följande format:
- nlsparam – Slutligen används parametern nlsparam för att ange språket för data och månad i strängen. Formatet är NLS_DATE_FORMAT = språk. Oracle kommer att använda standardspråket för din session som standard.
Exempel på funktionsanvändning
Följande är exempel på funktionen to_date i Oracle-databasen:
Exempel 1 – Grundläggande konvertering
Exemplet nedan visar hur man använder to_date-funktionen för att konvertera en given teckensträng till ett datum.
select to_date('10 januari 2023', 'Månad dd, ÅÅÅÅ')från dubbel;
I det här fallet konverterar vi den givna datumsträngen till en datumtyp med formatet Månad dd, ÅÅÅÅ.
Det resulterande värdet visas:
TO_DATE('JANUARI102023','MONTHDD,YYYY')2023-01-10
Exempel 2 – Konvertera datum och tid till datumtyp
Det andra exemplet illustrerar hur man konverterar en given teckensträng till datum.
välj to_date('10 januari 2023, 1:03', 'Månad dd, ÅÅÅÅ, HH:MI P.M.')
från dubbel;[/cc]
I det här fallet måste vi ange tidsformatet som HH:MI P.M.
Resultatet är som visas:
TO_DATE('JANUARI10,2023,1:03','MONTHDD,YYYY,HH:MIP.M.')2023-01-10 01:03:00
Exempel 3 – Specificering av språkparametern
Betrakta exemplet nedan som visar hur man använder to_date-funktionen med parametern nls_date_language.
välj to_date('10 januari 2023, 1:03', 'Månad dd, ÅÅÅÅ, HH:MI P.M.', 'nls_date_language=amerikansk')från dubbel;
Detta bör returnera värdet:
2023-01-10 01:03:00När vi ändrar sessionens språk som:
alter session set nls_territory = 'Australien';Konvertera tiden.
välj to_date('10 januari 2023, 1:03', 'Månad dd, ÅÅÅÅ, HH:MI P.M.', 'nls_date_language=amerikansk')från dubbel;
Slutsats
I det här inlägget utforskar vi användningen av to_date-funktionen i Oracle-databasen för att konvertera ett givet inmatat datum bokstavligt till datumtyp.