1

以下のSQLからタイムスタンプを出力したい

select to_date('01/01/2011 12:00:00 AM','dd/mm/yyyy hh:mi:ss AM') from dual;

現在の出力-> 1/1/2011(午前12時のみタイムスタンプを印刷しません。最小値が12:01の場合は、印刷しています。

しかし、私は次のような出力が必要です1/1/2011 12:00:00 AM

4

3 に答える 3

4

TO_DATE文字列を に変換しますDATE。ADATEは、人間が判読できないパックされたバイナリ形式で格納されます。オラクルDATEには形式がありません。したがって、プログラムに日付を表​​示するように要求すると、プログラムはそれをDATE文字列に変換する必要があります。explicit を実行して形式を明示的に指定しない場合、TO_CHARSQL*Plus などのツールは、セッションの を使用して日付を文字列に変換しますNLS_DATE_FORMAT。他のアプリケーションでは、日付を文字列に変換するさまざまな方法を選択できます。たとえば、クライアントの地域設定を使用したり、ユーザーが形式を構成できるようにしたりします。

を表す特定の形式の文字列を返したい場合DATEは、明示的な を使用する必要がありますTO_CHAR。何かのようなもの

SELECT to_char( some_date_column, 'dd/mm/yyyy hh:mi:ss AM' )
  FROM some_table

投稿した特定のケースでは、文字列を文字列として手に持っているのでTO_DATE、日付TO_CHARに変換してから文字列に戻すのではなく、デュアルから選択するだけです。DATEただし、選択しようとしている実際のテーブルに実際のテーブルがあると想定しています。

于 2011-12-09T23:21:45.963 に答える
1

フォーマットを制御する最良の方法は、to_char必要な日付フォーマットを使用して明示的に指定することです。

select to_char(to_date('01/01/2011 12:00:00 AM','dd/mm/yyyy hh:mi:ss AM'),'DD/MM/yyyy hh:mi:ss AM') 
  from dual;
于 2011-12-09T23:19:10.883 に答える
-3

使用できます

select  Convert(varchar,'01/01/2011 12:00:00 AM',113)
于 2011-12-09T23:19:00.260 に答える