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

Oracle10gで日付を時刻に変更する方法

    STIMINGを入力する必要があります 時間

    OracleにはTIMEがありません データ・タイプ。 DATE データ型は常に内部に7バイトとして格納され、常に年(2バイト)と月、日、時、分、秒(それぞれ1バイト)で構成されます。

    あなたはできません DATEの年、月、または日のコンポーネントはありません 。

    独自の時間を必要とする場合は、別のデータ型として保存するか、年/月/日を保存してそのコンポーネントを無視する必要があります。

    SELECTの場合 STIMINGを使用する 列には時間コンポーネントが表示されていません。これは、NLS_DATE_FORMATで設定されているデフォルトの日付形式を変更することで変更できます。 セッションパラメータ。

    このパラメータは、次を使用して確認できます:

    SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';
    

    次を使用して、現在のセッション内でこの値を設定できます。

    ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
    

    (注:これにより、他のユーザーの値は変更されません。)

    使用できる日付を挿入すると:

    INSERT INTO shift ( SNO, SNAME, STIMING)
    VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )
    

    または、ANSI TIMESTAMP リテラル(DATEに暗黙的にキャストされます 列の形式):

    INSERT INTO shift ( SNO, SNAME, STIMING)
    VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )
    


    1. PostgreSQLの時間のタイムスタンプの違い

    2. MySQLカバーvsコンポジットvs列インデックス

    3. SQLite AVG

    4. 自己満足は次のことにつながります:リスクが現実になる