2

日時フィールドの時間を次のように更新しようとしています

UPDATE table_name 
   SET col_name=to_DATE('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS') 
WHERE col_name1='rer';

dbで更新後、outputこんな感じです

'04/02/2012 12:12:00'

12時間フィールドに余分に追加していますが、時間フィールド
に余分に追加しないようにするにはどうすればよいです12か???

4

2 に答える 2

3

UPDATEステートメントはOKです。日付列に「余分な12」は追加されません。あなたが持っている唯一の問題は、値を表示することです。日付列には、'MM/DD/YYYY HH24:MI:SS' のような特定の形式で値が格納されるのではなく、バイナリ データが含まれます。次のようなステートメントでテーブルをクエリすると

SELECT col_name FROM table_name

日付はセッションの NLS_DATE_FORMAT を使用して表示されます。これはおそらく「MM/DD/YYYY HH:MI:SS」です。この形式では、日付は「2012 年 4 月 2 日 12:12:00」と表示されます。セッションで次のステートメントを実行すると

ALTER SESSION SET NLS_DATE_FORMAT='MM/DD/YYYY HH24:MI:SS';

そしてあなたのクエリ

SELECT col_name FROM table_name

希望の形式で日付が表示されます。他の方法は、 TO_CHAR のように使用することです

SELECT TO_CHAR(col_name, ''MM/DD/YYYY HH24:MI:SS') FROM table_name
于 2012-04-09T06:52:25.997 に答える
0

推測ですが、出力のフォーマットに使用される文字列にエラーがあり、「HH24」から「24」が欠落している可能性があります。上記にリストされている (出力ではなく) 入力の書式文字列しかないため、それが当てはまるかどうかはわかりません。これが私の言いたいことの例です。

クエリ 1:

select to_char(to_date('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS'), 
    'mm/dd/yyyy HH24:mi:ss') from dual;

結果 1:

04/02/2012 00:12:00

クエリ 2:

select to_char(to_date('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS'), 
    'mm/dd/yyyy HH:mi:ss') from dual;

結果 2:

04/02/2012 12:12:00

明確にするために、問題の解決策は、選択ステートメントの形式を確認し、次のようにデータを選択することだと思います。

SELECT to_char(col_name,'MM/DD/YYYY HH24:MI:SS') FROM table_name WHERE col_name1='rer';
于 2012-04-05T14:23:25.803 に答える