ホームページ >データベース >mysql チュートリアル >Oracle の真のデフォルトの日付形式とは何ですか?またその仕組みは何ですか?
Oracle データベースの日付形式とその操作メカニズムに関する真実
多くの記事では、Oracle のデフォルトの日付形式は YYYYMMDD、DD/MM/YYYY、または YYYY-MM-DD であると主張しています。ただし、この誤解は、Oracle 自体に事前定義された日付形式がないという事実から生じています。 Oracle は内部的に、日付を年、月、日、時、分、秒を表すバイナリ値として保存します。
「25-JAN-18」などの文字列を使用して Oracle に日付を挿入すると、Oracle は NLS_DATE_FORMAT セッション パラメータに基づいて文字列を日付に変換しようとします。 NLS_DATE_FORMAT の値は、ユーザーの地域とセッション設定によって異なります。したがって、有効な日付形式はユーザー間で異なる可能性があり、セッション内で動的に変更される可能性があります。
文字列から日付への変換
暗黙的な変換に依存しないようにするには、次のいずれかの方法を使用して文字列を日付に明示的に変換することをお勧めします。
NLS_DATE_FORMAT を変更します
NLS_DATE_FORMAT セッションパラメータを変更するには、次のステートメントを使用します:
<code class="language-sql">ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';</code>
デフォルトの NLS_DATE_FORMAT
デフォルトの NLS_DATE_FORMAT は、ユーザーのロケールを反映する NLS_TERRITORY セッション パラメータによって異なります。次のクエリは、NLS_TERRITORY と NLS_DATE_FORMAT の関係を示しています:
<code class="language-sql">... SELECT CAST(f.format AS VARCHAR2(12)) AS format, LISTAGG(t.territory, ', ') WITHIN GROUP (ORDER BY t.territory) AS territories ...</code>このクエリを実行すると、NLS_DATE_FORMAT 値とそれに対応する適用可能なリージョンのリストが生成されます。
以上がOracle の真のデフォルトの日付形式とは何ですか?またその仕組みは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。