0

「dd/mm/yyyy」形式で挿入クエリを実行していますが、日付を MM/DD/YYYY 形式で保存しています。なぜそれが起こっているのか知りたいだけですか?

これは私が使用している挿入クエリです。

insert into txnblackout(endtime,idtxn,blackoutflag,starttime,startdate,typeuser,id_entity,idsequence,idapp,enddate) values('83520','LGN','D','7920',TO_DATE('30/12/2012','dd/mm/yyyy'),'ECU','B001','4','A1',TO_DATE('30/12/2012','dd/mm/yyyy'))

ここに画像の説明を入力

4

3 に答える 3

2

Windows の日付形式を変更したくない場合 (Colin 't Hart の提案による)、次のことができます。

  • クエリで明示的な to_char() 日付形式を使用します (Robert Hanson の提案に従って)
  • クライアントの NLS 設定を設定する
  • クライアントを構成します (PL/SQL 開発者を使用しているようです): ツール -> 設定 -> NLS オプション -> 日付 -> ユーザー定義のチェック + フォーマットの入力

個人的には、クライアントの NLS 設定を設定します。

于 2012-10-15T12:31:08.967 に答える
2

これはフロントエンドの問題です。日付をその形式で表示しています。これらは日付フィールドであるため、日付は挿入した日付を実際に表しています。

スクリーンショットの右下隅に、日付が MM/DD/YYYY の順に表示されていることに注意してください。Windows でこの設定を変更すると、フロントエンド ツールで正しく表示される可能性が高くなります。

于 2012-10-15T12:17:43.917 に答える
1

重要な部分は、「TO_DATE('30/12/2012','dd/mm/yyyy')」を含む挿入によって明らかになります。これは、文字列 '30/12/2012' を DB 固有の内部日付オブジェクト形式に変換しています。基になるストレージ形式を制御することはできません。ただし、select を呼び出すときに日付書式設定関数を使用して、その内部日付オブジェクトを文字列に変換する方法を制御できます。

select to_char(some_date, 'dd/mm/yyyy') my_date from some_table;

参照したビジュアル インターフェイスでは、デフォルトの日付から文字列への変換が表示されているだけです。

于 2012-10-15T12:23:23.887 に答える