Vi er ofte nødt til at ændre datoformatet, mens vi tjekker. Her er nogle måder, du kan bruge til at ændre datoformatet i Oracle-databasen
Oracles standarddatoformat
Standarddatoformatet i Oracle styres af værdien af parameteren NLS_DATE_FORMAT.
Følgende forespørgsel kan bruges til at finde den aktuelle værdi af parameteren NLS_DATE_FORMAT
SELECT value FROM V$NLS_PARAMETERS WHERE parameter = 'NLS_DATE_FORMAT';
Sådan ændres formatet for hele sessionen
Vi kan ændre parameteren i sessionen og vælge det format, vi ønsker til Oracle-datoen. Her er sql'en, som kan bruges til at gøre i sessionen
ALTER SESSION SET NLS_DATE_FORMAT = '[date_format]'; MM Numeric month (e.g., 07) MON Abbreviated month name (e.g., JUL) MONTH Full month name (e.g., JULY) DD Day of month (e.g., 24) DY Abbreviated name of day (e.g., FRI) YYYY 4-digit year (e.g., 1998) YY Last 2 digits of the year (e.g., 98) RR Like YY, but the two digits are ``rounded'' to a year in the range 1950 to 2049. Thus, 06 is considered 2006 instead of 1906 AM (or PM) Meridian indicator HH Hour of day (1-12) HH24 Hour of day (0-23) MI Minute (0-59) SS Second (0-59)
Eksempel
alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';
Uanset hvilken forespørgsel du vil udføre, vil datokolonnen blive formateret i henhold til ovenstående datoformat
Example select sysdate from dual;
Sådan ændres datoformatet ved hjælp af to_char-funktionen
Vi vil måske have et andet datoformat for de forskellige sql-forespørgsler. I så fald kan du planlægge at bruge Oracle single row function to_char funktion og kan konvertere Oracle data kolonnen til det format du ønsker
Example select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss') from dual; select to_char(sysdate, 'dd-mon-yyyy') from dual;
Sådan ændres datoformat ved hjælp af to_date-funktionen
Vi ønsker måske at ændre strengene til datoformat til sammenligning, til lagring som datoen i Oracle-tabellen. I dette tilfælde kan du bruge Oracle to_date-funktionen
Example select to_date('11-JAN-2019 13:12:12', 'dd-mon-yyyy hh24:mi:ss') from dual; select to_date( '11-JAN-2019', 'dd-mon-yyyy') from dual;
Det vigtige at bemærke:strengen konverteres til en dato, og datoen returneres som i standard datoformat i select-sætningen. Hvis du bruger to_date-funktionen til at gemme strenge som datoen i datokolonnen, vil det kun blive gemt som dato. Når nu vælges, vil kolonnedatoen blive vist i Oracles standarddatoformat, der er angivet i sessionen.
Sådan formateres dato for at vise dag, uge, måneder osv.
Day of Week SQL> select to_char(sysdate,'D') col from dual; col ---- 2 Name of WeekDay SQL> select to_char(sysdate,'DAY') col from dual; col --- MONDAY Abbreviated name of day SQL> select to_char(sysdate,'DY') from dual; col ---- MON Day of Month SQL> select to_char(sysdate,'DD') from dual; col ---- 30 Abbreviated name of month SQL> select to_char(sysdate,'MON') from dual; col ---- NOV Name of Month SQL> select to_char(sysdate,'MONTH') from dual; col ----- NOVEMBER Day of Year SQL> select to_char(sysdate,'DDD') from dual; col ---- 334 Week of the year SQL> select to_char(sysdate,'IW') from dual; col ---- 05 Week of Month SQL> select to_char(sysdate,'W') from dual; col ----- 5 Month in Numbers SQL> select to_char(sysdate,'MM') from dual; col ---- 11 Year in Numbers SQL> select to_char(sysdate,'YYYY') from dual; col ---- 2019 Year in words SQL> select to_char(sysdate,'YEAR') from dual; col --- TWENTY NINE Hour in 0-12 format SQL> select to_char(sysdate,'HH') from dual' col ---- 08 Hour in 0-24 format SQL> select to_char(sysdate,'HH24') from dual; col --- 12 Minutes SQL> select to_char(sysdate,'MI') from dual; col ---- 45 Seconds SQL> select to_char(sysdate,'SS') from dual; col ---- 45
Jeg håber, du kan lide disse enkle trin til, hvordan du ændrer datoformat i Oracle-databasen. Der kan være mange eksempler, hvor dette kan bruges. Jeg har lige givet nogle enkle eksempler for at demonstrere funktionaliteten
Læs også
oracle-datofunktioner : Dette indlæg dækker oracle-datofunktioner, oracle-datoforskel i år, oracle-datoforskel i dage, oracle-datoforskel i måneder.
NULLIF-funktion i Oracle :NULLIF-funktion i Oracle sammenligne to værdier og returner null, hvis værdierne er de samme, ellers returner den første værdi. Du kan ikke angive den bogstavelige NULL i værdier
Opdater sætning i oracle:Vi bruger Update-sætning i oracle til at ændre de eksisterende rækker i oracle-tabellen i oracle database.Opdatering kan udføres på flere måder
Koalescer funktion i Oracle:Koalesce funktion i oracle vil returnere det første udtryk, hvis det ikke er null, ellers vil det lave sammensmeltning af resten af udtrykket.
hvordan man få metadata af en tabel i Oracle:Tjek hvordan du får tabeldefinition i Oracle, Oracle Vis indeksdefinition, få ddl af materialiseret visning i Oracle, få forespørgslen til en visning i Oracle
http://infolab.stanford .edu/~ullman/fcdb/oracle/or-time.html