確認中に日付形式を変更する必要があることがよくあります。 Oracleデータベースの日付形式を変更するために使用できるいくつかの方法を次に示します
Oracleのデフォルトの日付形式
Oracleのデフォルトの日付形式は、NLS_DATE_FORMATパラメータの値によって制御されます。
次のクエリを使用して、NLS_DATE_FORMATパラメータの現在の値を見つけることができます
SELECT value FROM V$NLS_PARAMETERS WHERE parameter = 'NLS_DATE_FORMAT';
セッション全体の形式を変更する方法
セッションのパラメータを変更して、Oracleの日付に必要な形式を選択できます。これがセッションで実行できるSQLです
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)
例
alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';
これで、実行するクエリが何であれ、日付列は上記の日付形式に従ってフォーマットされます
Example select sysdate from dual;
to_char関数を使用して日付形式を変更する方法
SQLクエリごとに異なる日付形式が必要になる場合があります。その場合、Oracleの単一行関数to_char関数の使用を計画し、Oracleデータ列を任意の形式に変換できます
Example select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss') from dual; select to_char(sysdate, 'dd-mon-yyyy') from dual;
to_date関数を使用して日付形式を変更する方法
Oracleテーブルに日付として格納するために、比較のために文字列を日付形式に変更したい場合があります。この場合、Oracleto_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;
注意すべき重要な点:文字列は日付に変換され、日付はselectステートメントのデフォルトの日付形式として返されます。日付列に日付として文字列を格納するためにto_date関数を使用している場合、それは日付としてのみ格納されます。これで、その列の日付を選択すると、セッションで設定されたOracleのデフォルトの日付形式で表示されます。
日付をフォーマットして日、週、月などを表示する方法
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
Oracleデータベースで日付形式を変更する方法に関するこの簡単な手順を気に入っていただければ幸いです。これを使用できる例はたくさんあります。機能を示すための簡単な例をいくつか挙げました
また読む
oracle日付関数:この投稿では、oracle日付関数、年単位のoracle日付差、日単位のoracle日付差、月単位のoracle日付差について説明します。
OracleのNULLIF関数:OracleのNULLIF関数は、2つの値を比較します。値が同じ場合はnullを返し、そうでない場合は最初の値を返します。値にリテラルNULLを指定することはできません。
OracleのUpdateステートメント:OracleのUpdateステートメントを使用して、Oracleテーブルの既存の行を変更します。 oracle database.Updateは複数の方法で実行できます
OracleのCoalesce関数:OracleのCoalesce関数は、nullでない場合は最初の式を返し、そうでない場合は残りの式を合体します。
方法オラクルでテーブルのメタデータを取得する:オラクルでテーブル定義を取得する方法、オラクルでインデックス定義を表示する方法、オラクルでマテリアライズドビューのddlを取得する方法、オラクルでビューのクエリを取得する方法を確認してください
http://infolab.stanford .edu /〜ullman / fcdb / oracle / or-time.html