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

Sådan ændres datoformat i Oracle-database

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


  1. Brug af HHVM med WordPress

  2. Maksimal størrelse for en SQL Server-forespørgsel? IN klausul? Er der en bedre tilgang

  3. Opret en ny Oracle-bruger og giv privilegier:Syntaks og eksempler

  4. Sådan skilles DATE og TIME fra DATETIME i MySQL