• 締切済み

date型のselect について

質問させてください。 今、テーブル(test_tbl)にフィールドjikan(date型)があるとします。 jikanフィールドの値を取得したいのですが、 select to_date(jikan, 'YYYY/MM/DD HH24:MI:SS') from test_tbl; と実行すると、 01-11-10 01-11-11 01-11-12 01-11-13 01-11-14 01-11-15 01-11-16 となってしまいます。 質問店としては、 なぜ、フォーマットを指定しているにもかかわらず、 (1) 年が4桁表示ではなく、2桁表示なのか? (2) 時間部分は表示しない、もしくはデータがない? の2点をお教えください。 ご迷惑をお掛けしますが、宜しくお願い致します。

  • 653
  • お礼率36% (138/382)

みんなの回答

  • yoshisuke
  • ベストアンサー率65% (19/29)
回答No.2

これってオラクルの話と仮定して。。。 「jikan」フィールドがDATE型で、単に表示だけしたいので あれば select to_char(jikan, 'YYYY/MM/DD HH24:MI:SS') from test_tbl; で表示できると思います

653
質問者

お礼

返信ありがとうございます。 to_charにしたら実際に時間部分にも データがありました。 ありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

jikanに入ってるデータが 問題ですね。 たぶん 01-11-10 としか 入ってないんじゃないでしょうか?

関連するQ&A

  • oracleのDate型

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

  • 同じSQL文での検索結果が異なる

    visualbasic2005とoracleを使ってデータベース管理ソフトを作っています。 ひとつのデータのフィールドはいくつかあるのですが、 DATAUPLOADというフィールド値をSQL文で検索するときのみ、 土曜日のデータを拾おうとするとなぜか検索をかけるごとに 件数が1件ずつ減っていくという現象が起きています。 他のフィールドや土曜日以外のフィールドの検索の時には そのようなエラーは起こらないのですが、 同じSQL文で検索結果が随時異なってしまう場合には どのような原因が考えられますでしょうか? DATAUPLOAD は'2008/03/12 00:00:00'の形式のDate型データです。 あるDATE(日付)のデータを検索するときに使用しているSQL文は、 SELECT * FROM DATABASE WHERE DATEUPLOAD BETWEEN TO_DATE(' & CStr(Format(DATE, "yyyy/MM/dd")) & 00:00:00','yyyy/MM/dd hh24:mi:ss') AND TO_DATE(' CStr(Format(DATE, "yyyy/MM/dd")) & 23:59:59','yyyy/MM/dd hh24:mi:ss') です。 いろいろとSQL文を変更してみたのですが、 同じエラーが続いています。 何か思い当たることがありましたら 教えていただければと思います。

  • 【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の問題なのかわからないのですが、 なにかアドバイスを頂けないでしょうか。 よろしくお願いします。

  • 基本的なことですが;

    DATE型の変数を定義し現在の日付時刻を代入しYYYY/MM/DD:HH24:MI:SSフォーマットで 画面表示しろという 問題を与えられました。 select sysdate from dual; declare today date; today_ki date; begin select to_char (sysdate, 'yyyy/mm/dd') into today from dual; select to_char (sysdate, 'hh24:mi:ss') into today_ki from dual; dbms_output.put_line( today || ', ' || today_ki); end; / という風に作ってみたのですが うまくいきません。 どうかご教授ください><

  • Oracleのselect文で日時表示する簡単な方法ないですか?

    SQL Plusで、select * from table とするとdata型はyyyy/mm/ddで表示されます。 いちいちto_char(time_stamp,’yyyy/mm/dd hh24:mi:ss’)とするのは苦痛なので、デフォルトで時間まで表示させる設定方法があったら教えてください。 # 私は、時々手作業でデータを集めている素人です。 # いままではSQL Serverだけだったのが、Oracleが増えて # 作法が異なるので戸惑ってます。

  • PL/SQLでのTO_DATEの時間取得について

    お世話になります。 PL/SQLでDATE型のデータの日時を取得する方法を教えてください。 PL/SQLでDBの値を、TO_CHARで取ってきて、その値をTO_DATEすると、時刻が落ちてしまいます。 charWorkEndDate VARCHAR2(20); dtWorkEndDate DATE; charWorkEndDate := to_char(V00061_Rec.S_DATE5, 'YYYY/MM/DD HH24:MI:SS'); dtWorkEndDate := to_date(charWorkEndDate, 'YYYY/MM/DD HH24:MI:SS'); 出力結果 --charWorkEndDate- [2005/12/25 06:00:19] --dtWorkEndDate- [05-12-25] to_dateの1つ目の引数にシングルクォーテーションが必要かと思い、 dtWorkEndDate := to_date('''||charWorkEndDate||''', 'YYYY/MM/DD HH24:MI:SS'); としてみたのですが、その場合、「ORA-01841: (周)年は-4713と+9999の間の0以外の数を指定する必要があります」とのエラーが出てしまいます。 どなたかDATE型のデータの時刻を取る方法をご存知でしたら、教えていただけますでしょうか。 よろしくお願いします。

  • PL SQL のループ

    あるセレクト文のパフォーマンスを測定するためにループで複数回実行し時間を測定したいのですが、select 変数 into をしないとコンパイルできず実行できません。 同じセレクト文を複数回実行し時間を測定するのに良い方法は無いでしょうか? CREATE OR REPLACE PROCEDURE test IS BEGIN DBMS_OUTPUT.PUT_LINE(TO_CHAR(sysdate(),'YYYY/MM/DD HH24:MI:SS')); FOR i IN 1..100 LOOP SELECT a,b,c,d,e FROM tbl; END LOOP; DBMS_OUTPUT.PUT_LINE(TO_CHAR(sysdate(),'YYYY/MM/DD HH24:MI:SS')); END;

  • SQL*PLUSでの分秒までの表示の仕方

    お世話になっております。 Oracle SQL*PLUSでデータを打ち込んでいるところなのですが、 表示の仕方で分からないところがあるので、 どなたか教えていただけないでしょうか? date型で指定して日付カラムを作ったところに TO_DATE('2009-01-02 10:00:10','YYYY-MM-DD HH24:MI:SS'), と入力したのですが、select文でデータを検索したところ DATE -------- 09-01-02 と返ってきました。これを分、秒まで表示させるには どうしたらよいでしょうか?? よろしくお願いいたします。

  • 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になってしまったり。 なぜ、上のように、フォーマットを指定しているのにもかかわらず、おかしくなってしまうのかわかりません。 わかる方、お教えください。

  • to_timestampを使ったアップデート

    オラクル初心者です。 「to_timestamp」を使用したデータベースへの書き込みのSQL文が分かりません。 ツールは「つみきWEB」を使用しています。 フィールドの形式は to_timestamp(yyyy/mm/dd hh24:mi:ss.ff3)です。 行ったコマンドは以下に示します。 update (テーブル名) set (書き込みを行うフィールド) = to_timestamp('11/11 11:11:11' 、'yyyy/mm/dd hh24:mi:ss.ff3') WHERE (条件)