sql >> データベース >  >> RDS >> Oracle

Oracleデータベースで日付形式を変更する方法

    確認中に日付形式を変更する必要があることがよくあります。 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


    1. MySQLで文字列の一部を置き換える方法

    2. MariaDBでのUUID()のしくみ

    3. MySQLをUbuntuにデプロイして完全に管理する方法

    4. 文字列を異なる列に分割する方法は?