0

次の形式のデータベースに日付(VARCHAR2として保存)があります。

20090123_163842.865
yyyyMMdd_hhmmss.ttt

そして私はSQL文を作成して以下を取得したいと思います:

23/01/2009 16:38:42,865
dd/MM/yyyy hh:mm:ss,ttt

私の目的は、それを認識可能な日付として手動でExcelに追加することです(データをデータベースからエクスポートしてExcelにインポートできることは知っていますが、手動で実行したいと思います)。

私のSQL文はどうあるべきですか?

私はそれを試みました:

select TO_TIMESTAMP(my_time_utc, 'YYYYMMDD_HH24MISS.FF3') from myTable

しかし、私は以下を取得することしかできません:

2009-01-23 16:38:42.865

ありがとう

4

2 に答える 2

3

多くの人がこれらの操作を混乱させていることに驚かされることは決してありません。

まず、varcharの「偽の日付」を実際の日付に変換する必要があります。これに使用to_dateします。次に、プレゼンテーション用に日付をvarcharに変換する必要があります。これに使用to_charします。

select to_char(to_date(column, 'yyyyMMdd_hhmmss.ttt'), 'dd/MM/yyyy hh:mm:ss,ttt')
from your_table;

あなたがやりたいことをする必要があります。

于 2012-10-29T11:33:32.723 に答える
1

オラクルがデータベースから日付フィールドを取得して表示すると、キャストの暗黙的な変換が行われます。この変換のフォーマットパターンは、Oracle構成で設定されます。oracle docの引用

Oracleの日付値のデフォルトの日付形式は、NLS_DATE_FORMATおよびNLS_DATE_LANGUAGE初期化パラメータから派生します。

  • Excelからクエリを実行する場合、Excelは日付形式を知っており、問題なくOracleから読み取ることができるため、実際のクエリは非常に優れています。

  • 画面の結果からコピーして貼り付けてExcelを使用する場合は、日付を目的の形式でvarcharにキャストバックするか、もちろん、ロケールに一致するようにOracle構成を変更する必要があります。

于 2012-10-29T11:37:51.407 に答える