1
SELECT to_date(to_char(SYSTIMESTAMP, 'MM/DD/YYYY'), 'MM/DD/YYYY') FROM DUAL;

==> 04-MAR-16

このselectステートメントが「03/04/2016」にならない理由を誰か説明できますか?

日付タイプとして、これが発生するように選択を記述するにはどうすればよいですか? 私も試してみました

SELECT to_date(to_char(trunc(SYSTIMESTAMP), 'MM/DD/YYYY'), 'MM/DD/YYYY') FROM DUAL

同じ結果で。

4

2 に答える 2

3

日付がクエリによって返されて表示される場合、何らかの方法でフォーマットする必要があることは明らかです。日付型の値がフォーマットされる方法は、クエリではなく、クエリを実行して結果を表示するツールによって決まります。

SQL 開発者の場合、その形式を次のように設定できます。

  1. メニューの [ツール] > [設定] を選択します。
  2. 「プリファレンス」ダイアログで、左側のパネルから「データベース」 > 「NLS」を選択します。
  3. NLS パラメータのリストから、「MM/DD/YYYY」と入力します。
  4. 保存して閉じます

この質問も参照してください。

タイムスタンプを日付に変換するには、切り捨てるだけでよいことに注意してください: trunc(SYSTIMESTAMP). 文字列に変換してから日付に戻す必要はありません。

于 2016-03-04T19:28:59.433 に答える