0

これはかなり明白だと思ってSOのWebサイトをトロールしましたが、残念ながらまだ見つけていません。基本的には次のような設定です。

次のようなテーブルに文字列があります。

2010/06/22 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

望ましい出力 (日付形式):

2010/06/22 00:00:00

4

2 に答える 2

5

DATE には形式がありません。表示目的で文字列に変換されたときにのみ形式設定されます。SQL Plus を使用している場合、(TO_CHAR を使用して明示的に書式設定せずに) DATE 列を表示すると、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 を使用していない場合は、どのツールを使用しても同様の処理が行われ、表示用の日付形式を指定する方法が異なる場合があります。

于 2010-06-23T14:18:08.807 に答える
3

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

結果として、日付の計算と格納には DATE データ型を使用します (フォーマットなし)。to_char日付を (レポートまたは GUI で) 表示する必要がある場合は、関数または同等のものを使用します。

于 2010-06-23T14:17:42.247 に答える