質問

私はこれがかなり明白だと思っているので、私はSOウェブサイトをトロールしましたが、悲しいかな私はまだ見つけていません。基本的にセットアップは次のとおりです。

私はそうなようなテーブルに文字列を持っています:

06/22/2010 00:00:00

私はそれについて選択します:

SELECT To_Date(item, 'MM/DD/YYYY HH24:MI:SS') from that_table

それが効果的に私はやっています

SELECT To_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS') from that_table

私のデータベースが返されます:

22.06.2010 00:00:00

今、私はできることを知っています

to_char(to_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')

しかし、日付形式を返すために選択が必要です(MM/DD/YYYY HH24:MI:SS)、文字列ではありません。どうやってやるの?

編集:実際の出力:

22.06.2010 00:00:00

目的の出力(日付形式):

06/22/2010 00:00:00

役に立ちましたか?

解決

日付は時点で、形式はありません(数字など:フォーマットがありません)。日付を表示する場合、明らかにフォーマットを取得する必要があります。Oracleに特に形式を指定しない場合、セッションのデフォルト形式が使用されます(セッションパラメーターnls_date_format)。

その結果、日付算術とストレージ(形式なし)に日付データタイプを使用します。使用 to_char 日付を表示する必要がある場合(レポートまたはGUIで)関数または同等のもの。

他のヒント

日付にはフォーマットがありません。表示目的で文字文字列に変換された場合にのみフォーマットされます。 SQL Plusを使用している場合、日付列を表示するとき(to_charを使用して明示的にフォーマットすることなく)、SQL Plus自体はNLS_DATE_FORMAT設定を使用してTO_CHAR変換を実行します。

SQL> select sysdate from dual;

SYSDATE
---------
23-JUN-10

SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2010-06-23 15:17:12

SQL Plusを使用していない場合、使用しているツールはどんなツールでも同様のことを行い、表示の日付形式を指定する別の方法がある場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top