• ベストアンサー

日付の変換方法について

OSはunix(Solaris8)で、c言語を使ってます。 DBからDATE型の日付データ(YYYYMMDDhhmmss)を取得してきて、 30分後の時間を計算して元のDATE型に戻して格納する処理を行いたい のですが、一度数値に変換した方がよいのでしょうか? それとも、もっと効率の良い方法がありましたら教えて下さい。 宜しく御願い致します。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 DB がOracle と言う事であれば、以下のSQL 文で30分後の時間に 設定する事ができます。  Update 表名 set Date型列名 = Date型列名 + 30/1440   Where ・・・; ※ Oracle ではDate 型変数は内部的には7バイトの数値型で、   整数部で基準日からの日数を、小数部で当日からの経過時間を   管理していますので、SQL文で上記のように記述できます。 SQL*Plus 等では、デフォルトで時間情報が表示されないように マスクされていますので、時間情報も併せて表示する場合には、 事前に以下のSQL 文を実行して下さい。 Alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS';

関連するQ&A

  • 日付データ変換

    itunesでバックアップしたデータから、メッセージの送受信日時を調べています。 1388793751という数値(dateという項目)が、「2014年1月4日09時02分31秒」だとわかりました。 (かろうじて残っていたデータからわかりました。) 数値の変換式というんでしょうか、10桁の数値から、正確な日付データになおすときの法則のようなものがあれば嬉しいです。 この数値から日付を割り出すのって無理でしょうか? ファイル形式は.dbとなっています エクセルのシリアル値でもないような(詳しくなくてすみません) お助け願います

  • RSS1.0から取得した日付の書式変換

    ごちゃまぜRSSリーダーforPHP(http://www.vector.co.jp/soft/unix/net/se334908.html)を使ってRDFファイルから日付を取得しようとしています。 item['dc']['date'];と記述し 2006-04-07T19:39:44+09:00 と日付を取得することは できたのですが 本当は 2006/04/17 と表示したいと思っています。 どのように書式を変換するのでしょうか? ご教授お願いします

    • 締切済み
    • PHP
  • SQLの日付と、DBの日付項目に対する比較について

    よろしくお願いします。 以下のように、DBには年月日がCHARの8桁で格納されています。 20050125 20050126 20050127 20050128 20050130 20030201 20030202 この項目に対し、システム日付から過去一週間以内の 日付を取得したいのですが、文字型とSQLのDATE型の 比較はどのようにすればよろしいのでしょうか? よろしくお願いします。

  • 14桁の日付(YYYYMMDDHHMMSS)を日付(YYYY/MM/DD)に変換できますか?

    データとして14桁の値で日付が登録されています。 この14桁の値(YYYYMMDDHHMMSS)を日付(YYYY/MM/DD)に変換できますか? やりたい事はこの14桁の値から現在の日付から過去1年以内のデータを取得したいと思っていますが・・・ どのようにしたらいいのでしょうか? 申し訳ありません、アドバイスいただけませんでしょうか? 宜しくお願いします。

  • 日付の比較について

    PHPで日付を比較したいのですが、、 どのようにしたらよいかわかりません。 データベースのように大なり小なりで比較できるのでしょうか? 例えば、下記のように記述した場合は日付比較は正常に行われているのでしょうか? 今日の日付 $date = date('Y-m-d'); DBから取得した日付 $str_date = '2005-05-22'; if($date < $str_data){ 処理1 }else{ 処理2 }

    • ベストアンサー
    • PHP
  • 日付計算について

    OSはunixでc言語、Oracleを使ってます。 文字型の日付データ(YYYYMMDD)を元に、-n日を取得する方法を教えていただきたいのですが。 宜しく御願い致します。

  • 日付データに復活する方法を教えてください!

    エクセル初心者です。 分析用に以下のデータをもらったのですが、困ってます。 現象:本来は日付データを数値データで渡された為、、以下のような現象がおきてます。 101(20000101):DB上は000101のもの 50203(20050203):DB上は050203のもの 980204(19980204):DB上も980204のもの 私としては、カッコ内のような8桁のデータとして処理したいのですが、変換する方法がわからず困っております。皆様のお知恵をかして頂けないでしょうか。

  • 文字型を日付/時刻型に変換するには?

    文字型変数に格納している数値を日付/時刻型のフィールド (Access)に保存したいのですが、変換方法を教えて下さい。よろしくお願いします。

  • YYYYMMDDhhmmss形式の文字列を日付時刻に変換・計算する方法

    YYYYMMDDhhmmss形式の文字列を日付時刻に変換・計算する方法 お世話になっております。 今回の質問内容なのですが、 あるテーブルにYYYYMMDDhhmmss形式(varchar(14))の列がありまして、 この値の時刻計算を行いたいと思っております。 YYYY/MM/DD hh:mm:ss形式であれば、DATEADD関数で 計算が可能なのですが、やり方がわからず苦戦しております。 例えば1秒加算させたいと思い、以下のSQL文を実行してみたのですが、 SELECT DATEADD(second,1,(CONVERT(DATETIME,'20100312111111'))) 「文字列から日付/時刻に変換できませんでした。」というエラーが 発生してダメでした。 時刻部分だけ取り出して、それに時分秒を分ける「:」をつけて変換し 計算するという方法は極力避けたいと思っています。 何かいい方法がありましたら、ご教示のほどよろしくお願い致します。

  • 日付書式に変換でこまっています!

    文字型を日付型に変えるTO_DATE関数ってありますよね。 もともとのデータは数値型(NUMBER型)だったとしたら、 その数値型を日付型に変換するためには、 例)TO_DATE(TO_CHAR(20001201),'YYYY/MM/DD'))で実行すれば、 結果は、「2000/12/01」になりますよね? しかし、ここで問題なのがもともとのデータの数値型の初期値が0で設定されていて、なおかつその行も結果として出したい場合どうしたらいいのかわかりません。 例が解りにくくてすいません! 何か解決法がありましたらぜひ教えて下さい!

専門家に質問してみよう