3

Oracle について質問があります (Oracle 11g Express Edition をインストールしました)。「日付」と「時刻」の値を挿入したいのですが、それらを分離できません。

create table Match 
(
    numMatch number(2) constraint PKMatch primary key,
    dateM date, 
    heureM date,
    numE_Eq number(2),
    numE_Eq2 number(2),
    nomTerrain varchar2(30)
);

--"tools"=>"preferences"=>"format de date:DD/MM/YYYY HH24:MI:SS"

insert into Match values (1,to_date
('10/12/2010','DD/MM/YYYY'),to_date('15:00:00','HH24:MI:SS'),1,3,'Stade Argentina'
);

結果:

dateM: 10/12/2010 00:00:00

heureM: 01/11/2012 15:00:00

PS: to_date の代わりに to_char を試してみましたが、まったく機能しませんでした。


はい、「DATEデータ型には日付と時刻の両方が含まれている」ことは承知していますが、テーブルに日付と時刻を別々に表示することを主張しているのは教授であり、以前にあなたのソリューションを見たことがありますが、私にとってはクエリです.テーブルに「値を挿入」しないでください。

ですから、日付と時刻を直接表すテーブルを作成する方法を知りたいです。

4

4 に答える 4

3

Oracle には TIME データ型がありません。時間コンポーネントを含む DATE を格納し、時間に基づいてクエリを実行し、時間に基づいて表示することができます。

select to_char(my_date_field, 'HH24:MI:SS') 
from my_table
where to_date(my_date_field, 'HH24:MI') = '18:51';

または、午前 0 時からの秒数を整数として格納し、そこから時刻を計算することもできます。また、範囲時間のクエリも簡単になると思います。

また、セッション内で次を実行して、すべての日付を希望どおりにフォーマットします。

alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'
于 2012-11-02T00:35:25.493 に答える
0

Oracle DATE 型には、DATE と TIME の両方の情報が含まれます (標準の DATE、TIME、および TIMESTAMP 型が追加された時点で、SQL-92 標準よりも前の日付であるため)。したがって、表でそれらを分離することはできません。そうする理由もありません。必要に応じて、DATE フィールドを日付のみと時間のみの表示フィールドとして表示するビューを作成できます。

于 2012-11-02T00:29:44.340 に答える