sql >> Databáze >  >> RDS >> Oracle

Jak změnit formát data v databázi Oracle

Při kontrole často potřebujeme změnit formát data. Zde je několik způsobů, které můžete použít ke změně formátu data v databázi Oracle

Výchozí formát data Oracle

Výchozí formát data v oracle je řízen hodnotou parametru NLS_DATE_FORMAT.

Následující dotaz lze použít k nalezení aktuální hodnoty parametru NLS_DATE_FORMAT

SELECT
  value
FROM
  V$NLS_PARAMETERS
WHERE
  parameter = 'NLS_DATE_FORMAT';

Jak změnit formát pro celou relaci

Můžeme změnit parametr v relaci a vybrat jakýkoli formát, který chceme pro datum Oracle. Zde je sql, který lze použít v relaci

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)

Příklad

alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';

Ať už provedete jakýkoli dotaz, sloupec data bude formátován podle výše uvedeného formátu data

Example
select sysdate from dual;

Jak změnit formát data pomocí funkce to_char

Možná budeme chtít mít jiný formát data pro různé dotazy SQL. V takovém případě můžete naplánovat použití jednořádkové funkce Oracle to_char a můžete převést sloupec dat Oracle do jakéhokoli formátu, který chcete

Example
select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss')  from dual; 
select to_char(sysdate, 'dd-mon-yyyy')  from dual;  

Jak změnit formát data pomocí funkce to_date

Možná budeme chtít změnit řetězce do formátu data pro porovnání, pro uložení jako datum v tabulce Oracle. V tomto případě můžete použít funkci Oracle to_date

 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;   

Důležitá věc, kterou je třeba si uvědomit:řetězec je převeden na datum a datum je vráceno jako ve výchozím formátu data v příkazu select. Pokud používáte funkci to_date pro ukládání řetězců jako datum ve sloupci data, bude to uloženo pouze jako datum. Nyní, když vyberete tento sloupec, datum se zobrazí ve výchozím formátu data Oracle nastaveném v relaci.

Jak formátovat datum pro zobrazení dne, týdne, měsíce atd

 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
 

Doufám, že se vám líbí tyto jednoduché kroky, jak změnit formát data v databázi Oracle. Příkladů, kde to lze použít, může být mnoho. Uvedl jsem jen několik jednoduchých příkladů pro demonstraci funkčnosti

Přečtěte si také
Funkce data Oracle : Tento příspěvek pokrývá funkce data Oracle, rozdíl data Oracle v letech, rozdíl dat Oracle ve dnech, rozdíl data Oracle v měsících.
Funkce NULLIF v Oracle:Funkce NULLIF v Oracle porovná dvě hodnoty a vraťte null, pokud jsou hodnoty stejné, jinak vraťte první hodnotu. V hodnotách nemůžete zadat doslovnou hodnotu NULL
Příkaz Update v oracle:Příkaz Update v oracle používáme k úpravě existujících řádků v tabulce oracle v Databáze oracle.Aktualizaci lze provést několika způsoby
Funkce sloučení v Oracle:Funkce sloučení v oracle vrátí první výraz, pokud není null, jinak provede sloučení zbytku výrazu.
jak na to získat metadata tabulky v oracle:Podívejte se, jak získat definici tabulky v oracle, oracle zobrazit definici indexu, získat ddl materializovaného pohledu v oracle, získat dotaz na pohled v oracle
http://infolab.stanford .edu/~ullman/fcdb/oracle/or-time.html


  1. Jak předat parametr sql do IN()?

  2. Jak zkontrolovat, zda je přepínač zaškrtnutý nebo vybraný v jQuery?

  3. Jaké jsou výhody a nevýhody ponechání SQL v uložených procesech versus kód

  4. Když zavolám PreparedStatement.cancel() v aplikaci JDBC, skutečně to zabije v databázi Oracle?