経過時間をDATE型に格納できない?

このQ&Aのポイント
  • Oracle9iで、記録時刻からの経過時間を格納する処理をCで作成する必要があります。
  • DATE型に経過時間を入れることはできないのか、文字列として格納しないとだめかもしれません。
  • DBを触るのが初めてですが、類似の質問や参考ページがあれば教えていただけますか?
回答を見る
  • ベストアンサー

経過時間(hhmmdd)をDATE型には格納できない?

Oracle9iで、前回記録時刻からの現在までの経過時間を、 hhmmdd(XX時間XX分XX秒)の形で格納する処理をCで作ることが必要になりました。  そこで質問なのですが、DATE型に0000年00月00日3時14分30秒のように、差分の経過時間を入れることはできないのでしょうか?  一度この方法(年月日時分秒を%4d%02d%02d%02d%02d%02dで格納してTO_DATEで'YYYYMMDDHH24MISS'の形で格納しようとしました)でデータを設定して試したところINSERT ERROR(月の値が不正)になってしまいました。DATE型ではこのようなデータの格納は無理なのでしょうか? また、もし文字列として格納しないとだめかもしれないのであれば、テーブルのつくりなおしも考えています。 (なお、現在時刻を格納するのはだめと言われています) それともし、類似の質問や参考ページがあったら教えていただけますでしょうか。DBを触るはほとんど初めてというレベルですが、よろしくお願いします。

  • Oracle
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • lasichi
  • ベストアンサー率31% (122/389)
回答No.1

DATE型は実在する日時でないとエラーになってしまいますね。 DATE型からINTERVAL DAY TO SECOND型に変更したらどうでしょう?期間を格納できます。 DBを変えるのは無理でしたらすいません。

doradora55
質問者

お礼

やっぱり実在する日付じゃないとだめみたいですね 長さ固定の文字列として格納するか現在時刻をいれて取り出すときに時刻差をとるようにできないかな?と思っていましたが、INTERVAL DAY TO SECOND型にしようかと思います。 回答ありがとうございます。

関連するQ&A

  • 【MySQL】時間を格納したり計算するためには?

    ○時△分□秒という“時刻”ではなく ○時間△分□秒という“時間”を格納したり足し算したりしたいのですが テーブル作成時にそのような型はないでしょうか? 時間と分と秒を別々のintに格納して 加算時、分や秒が60を超えたら時間に1を加えて・・・ みたいな面倒を考えている次第ですが もし良い手法がありましたらご教示願います。 宜しくお願い致します。

  • 経過時間を表示したい

    現在の時刻と開始時刻から、経過時間を表示したいです。 現在の時刻は16時30分だったら、16:30 開始時刻は12時15分だったら、12:15という変数があります。 答えで4:30という数字が欲しいです。 経過時間は24時間以下を考えれば良いです。

  • OracleのDATE型について

    OracleのDATE型について確認したいことがあり質問させてもらいます。 OracleのDATE型は1970年1月1日0時0分0秒からの経過ミリ秒をデータとして保持していると思っていたのですが勘違いでしょうか? 確かにDATE型自体ではミリ秒を扱うことはできないけど実際にはミリ秒単位までデータを持っているので、一見同日付同時刻でも大小比較できると思っていたのですが、この認識は間違っていますでしょうか? 初歩的なことで申し訳ありませんが有識者の方、教えてください。

  • 時間の計算について

    PERLにて、以下のようなことがしたいと考えています。 $date1="12:00" $date2="12:45" $date2 - $date1 = 45(分) 上記の感じで2つの時刻の差分時間を計算したいと考えているのでが、何か良い方法はないでしょうか? 最初は時刻を「(時間×60)+○○分」に変換して引き算すれば良いかと考えていましたが、その場合だと、日をまたぐ(23:00から2:00)みたいな計算が出来るのかな?と思いました。 何か良い方法があればご教授頂ければ幸いです。 それでは、どうぞよろしくお願い致します。

  • Excel_複数の経過時間を記録するマクロ

    社内向けの動画を配信しています。 後で編集できるように、経過時間と話した内容をノートにメモしてましたが、 これでは限界があるようです。 そこで、ボタンやショートカットを押せば、経過時間(分:秒)をA列のセルに書き込むようなマクロを教えていただけないでしょうか。 ----------------------------------------------------- マクロをスタートすると、現在時刻を使用していないセル、例えばZ1等に記載。 "Check"ボタン等を押すと現在時刻を見て、経過時間(分:秒)をA列に順に記載。  ・選択されているセルが空白の場合は経過時間を記載   そうでない場合は下のセルに移動し空白の場合は経過時間を記載 ----------------------------------------------------- 何卒よろしくお願いいたします。

  • マイコンで経過時間カウントについて

    例えば、マイコンで経過時間をカウントする時に 開始時間と現時間の差分を取り、所定時間の経過をカウントする手法があります。 下記参照 https://www.renesas.com/ja-jp/support/technical-resources/engineer-school/mcu-programming-peripherals-02-timer.html 例題では、1秒や2秒の話なので良いですが、 例えばこれが1時間になった場合、1時間経過してLEDが点灯するかを 確認しようとしたら、本当に1時間待たなければなりません。 この辺はどのように確認を行えばいでしょうか? 例えば、開発環境上で開始時間(変数)を途中で変更して、残り1分とかにして すればよいのでしょうか? ご存知の方教えてください。 宜しくお願いします。 (私は素人なので上から目線的な言い回しはご配慮ください)

  • 数値で表示されている時間を秒単位に変換したい

    Excleの関数についての質問です。 ある表について、A列を「処理時間」としているのですが、その列は書式を時刻(XX:XX:XX)の形ではなく、数字で入力しています。 例えば、11:20:01であれば「112001」、00:00:01であれば「1」と入力されています。 (頭0は無し) ここに秒単位変換用の列を追加し、処理時間が1(時刻形式では00:00:01)であれば1、100(時刻形式では00:01:00)であれば60、10000(時刻形式では01:00:00)であれば3600というように、秒単位に変換する関数を組みたいのですが、どのようにすれば良いでしょうか?

  • マイコンで経過時間のカウント

    マイコンで所定時間経過したかどうかを判断するとき、 下記の2パターンがあると思います。 例えば、マイコンで有名なR社さんのマイコンセミナーでは②で説明していました。 私は②に慣れています。 お互いのメリットデメリットを教えてください。 また、どちらがおすすめなのでしょうか? ①開始時間time1と現時間time2との差分で経過時間を判断する方法。  例えば、arduinoとかでのmills()関数を使用した方法。  time1 = mills();  /*何らかの処理*/  time2 = mills();  time_diff = time2 -time1; /*経過時間*/ ②ある変数timerを1秒ごとに減算して0になったかで判断する  例えば、1秒割込みで   if(timer > 0){ timer--; }  を実施し、  その後、   if(timer == 0){  で比較する。

  • javascriptで何日何時間何分何秒経過

    交通事故無事故無違反を会社のHPのTOPに貼りたいのです。 今日(6/1)から計測するとして、 今日だと -無事故無違反「0」日経過しました。- となり、明日になれば -無事故無違反「1」日経過しました。- とすることはあちこち探してできました。 でも、できれば、 -無事故無違反「dd」日「hh」時間「mm」分「ss」秒経過しました。- としたいのですが、 「hh」時間まではできても、分・秒までのやり方・考え方がわかりません。 表示はできると思うのですが 分や秒はあくまで任意の日付(たとえば6月1日)から何千分・または何万秒たったかの表示に なってしまいます。 経過時間を何日何時間何分何秒と表示するにはどうすればいいのでしょうか?

  • 1/10秒単位で経過時間を測りたい

    Excell VBA で 1/10 秒単位で経過時間を表示する方法を教えてください。 現在は次の書式を使っているので、1秒単位でしか表示されません。 MsgBox "所要時間 : " & Format(Now - StartTime, "hh:mm:ss") StartTime は計測開始時刻です。