• ベストアンサー

オラクルのDATE型について

2ndの回答

  • ベストアンサー
  • 2nd
  • ベストアンサー率30% (19/63)
回答No.1

Oracle の DATE型 は "YY/MM/DD"形式で格納されているわけではありません。 Oracle独自の形式(非公開)で 7bytes の情報として格納されています。 その 7bytes の中に「年月日時分秒」の情報が入っています。 なので、データを取得する際に、to_char 関数を用いて 好みの形式にして取り出して利用する、というのが DATE型の使い方になります。 select 文で、to_char 関数を使用せずに取得した場合の形式は NLS初期化パラメータ NLS_TERRITORY(が定義する NLS_DATE_FORMAT)で 指定されます。

関連するQ&A

  • date型へのinsertについて

    cプログラムにてoracleのあるテーブルのdate型カラムに値をinsertしたいのですが、 'YYYY/MM/DD hh:mm:ss'の情報を格納するにはどうすればよいのでしょうか? TO_DATEを使用するのでしょうか?

  • 【PL/SQL】DATE型の時刻の表示と非表示

    PL/SQLでのDATE型の取扱いについて教えてください。 初期化パラメータNLS_DATE_FORMATが'YY-MM-DD'で、 ある列を'YYYY/MM/DD HH24:MI:SS'形式でDBにINSERTしたい場合、 dtWorkEndDate := to_date(charWorkEndDate, 'YYYY/MM/DD HH24:MI:SS'); としてINSERTにdtWorkEndDateを用いると、 YY-MM-DD形式でDBに登録されてしまいます。 (dtWorkEndDateはDATE型。) ORACLEの設定かPL/SQLの問題なのかわからないのですが、 なにかアドバイスを頂けないでしょうか。 よろしくお願いします。

  • Oracleで、DATE型カラムについて

    Oracle9iで、テーブルを作成しました。 各テーブルには、DATE型のカラムがあります。 テーブル内:2004-04-17 01:15:00 と、入っているとき SELECT TO_CHAR(日付,'yyyy/mm/dd hh24:mi') FROM テーブル という風にアクセスしました。 しかし、 あるテーブルでは、 4/04/17 省略形になったり、 はたまた、あるテーブルでは、 2004/04/17 00:00 と時分が0になってしまったり。 なぜ、上のように、フォーマットを指定しているのにもかかわらず、おかしくなってしまうのかわかりません。 わかる方、お教えください。

  • データベースのDate型カラムの扱いについて

    カラム(Date型)に入っている日付を取得し、 「yyyy/mm/dd」「yy/mm/dd」の形式で JSPで表示したいのですが、どうすればいいのでしょうか? Date型はrs.getStringでは取得出来ないのでしょうか・・ 上記の実現の仕方を教えて下さい。 データベースはPostgreSQLです。

    • ベストアンサー
    • Java
  • oracleのDate型

    Ceate table test( field1 date ) insert into test values(current_timestamp); 上記の処理でDate型の列にcurrent_timestampデータを入れても、年月日までしかはいらないのですが、yyyy/mm/dd hh24:mi:ssの形で はできないのでしょうか?oracleは10gです。

  • Date フォーマット

    JavaScritp初心者です。 Dateオブジェクトの形式ですが、 ネットで調べると、みなさん色々工夫されてフォーマットしていますが、(プラグイン配布など) 2014年現在でも、簡単に(数行で)フォーマットできないのでしょうか? var d=new Date(); console.log(d); フォーマット: yyyy/mm/dd(2014/02/26)や yy年m月d日(2014年2月26日)など JQueryでもいいのですが、 お手数ですが、よろしくお願いします。

  • SQLコマンドの「TO_DATE」について

    SQLコマンドで、下記を実行すると「2014/04/03」などが取得できると思ったのですが、 「14/04/03」で取得してしまいます。 (aaa_dateは、DATE型で、「2014/04/03」などが入ってます) select TO_DATE(aaa_date,'YYYY/MM/DD') from AAA_TBL YYYYをYYにして、下記を実行すると、なぜか、「2014/04/03」と正常に取得します。 select TO_DATE(aaa_date,'YY/MM/DD') from AAA_TBL 逆の気がするのですが、なぜでしょうか。

  • Oracle to_dateのyyyy/mm/dd

    to_dateを以下のように使用した場合、正確なdate値(2011年2月1日)を取得できるのでしょうか。 select to_date('2011/2/01','yyyy/mm/dd') from dual; 自分で検証できる環境が無い(コマンドが叩けない)ので質問させていただきました。 (できればoracle8i環境で分かると助かります。) よろしくおねがいいたします。

  • 元のテーブルはいじらずフォーム上のみで表示形式を変

    アクセスのフォームにコンボボックスを作り、値集合ソースにテーブル日付型のフィールドを指定し、 値集合タイプをテーブル/クエリにしてあります。 そのコンボボックスには問題なくデータは表示されるのですが、 コンボボックスに表示する日付の形式を、yy/mm/dd形式で表示させたいのです。 コンボボックスの書式をyy/mm/ddにしてみましたが、 yyyy/mm/ddのままです。 元のテーブルのデザインビューでフィールドの書式をyy/mm/ddにしたら、 連動してフォームのコンボボックスもyy/mm/ddになりましたが、 元のテーブルはいじらずフォーム上のみで表示形式を変えることは不可能なのでしょうか? よろしくお願いします。

  • Oracle9i プロシージャ内でのIF文の書き方について

    Oracle9iでプロシージャを作成しています。 テーブルの型はCHAR(10)で、 日付のデータ'YYYY/MM/DD'が入っているカラムがあります。 このMM/DDの部分が04/21~12/20なら○○○、 12/21~04/20なら△△△ というIF文を作りたいのですが、 どうしても思いつかなくて途方に暮れています。 どなたかアイデアがあれば教えてください。