DATE
はOracleの組み込み型であり、固定された方法で表され、制御することはできません。
だから:
[...]を2011年8月1日午前12:00:00に挿入したい
上記は無意味です。文字列を挿入するのではなく、日付を挿入します。
フォーマットは必要な場合にのみ役立ちます:
- 文字列を
TO_DATE
を使用して日付の内部表現に変換します (フォーマットマスク:文字列の解析方法); - 日付の内部表現を
TO_CHAR
を使用して文字列に変換します (フォーマットマスク:日付のレンダリング方法)
したがって、基本的に、あなたの例では、DATEを取得し、それを何らかの形式のSTRINGに変換し、同じ形式のDATEに変換し直します。これはノーオペレーションです。
クライアントが表示する内容:これは、OracleクライアントがDATEフィールドを直接表示せず、NLSレイヤーが選択されたDATEフィールドを変換するためです。したがって、デフォルトではロケールによって異なります。
必要なのはSELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;
これは明示的に変換を実行し、文字列を返します。
また、データベースに日付を挿入する場合は、TO_DATE
を使用できます。 または日付リテラル。