ORACLE TECHNOLOGY NETWORK
 
 
   

Oracle Technology Network (OTN) Japan - 掲示板 » ビギナー » 初心者の部屋

スレッド: DATE型から秒数を取得する方法について

このスレッドに返信する このスレッドに返信する スレッド一覧へ スレッド一覧へ

Permlink 返信数: 11 - ページ数: 1 - 最新投稿 : 2004/11/22 14:42 最新投稿者: 左上段回し蹴り - スレッド表示形式:
ofukuda

投稿数: 89
登録日時: 01/05/02


DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 13:59
  このスレッドに返信します… 返信

お世話になります。

OSでは日付を秒数で所持していますが、OracleのDATE型のデータを前述の値
(秒数)に変換する方法はOracleにはあるのでしょうか?
----------
YYYY-MM-DD HH24:MI:SS → XXXXXXXXXXX秒
に変換するSQLを作成する。
----------
Oracleのマニュアルを見ても該当するような関数は無いようです。(私が探し
きれてないだけかもしれませんが。)
やはりSQL(またはPL/SQL)ではなく他のプログラム言語で作成するしかないの
か判断し兼ねています。

どなたかご存知、もしくは同じような体験をされた方がいましたら、教えても
らえないでしょうか?

カサブランカ

投稿数: 395
登録日時: 03/01/07


RE:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:09   ofukuda さんへの返信です。 ofukuda さんへの返信です。
  このスレッドに返信します… 返信

>お世話になります。
>
>OSでは日付を秒数で所持していますが、OracleのDATE型のデータを前述の値
>(秒数)に変換する方法はOracleにはあるのでしょうか?
>----------
> YYYY-MM-DD HH24:MI:SS → XXXXXXXXXXX秒
> に変換するSQLを作成する。
>----------
>Oracleのマニュアルを見ても該当するような関数は無いようです。(私が探し
>きれてないだけかもしれませんが。)
>やはりSQL(またはPL/SQL)ではなく他のプログラム言語で作成するしかないの
>か判断し兼ねています。
>
>どなたかご存知、もしくは同じような体験をされた方がいましたら、教えても
>らえないでしょうか?

UNIXなどのような、1970 年 1 月 1 日午前 0 時 0 分 0 秒からの通算時間
のことでしょうか?


jiropochi

投稿数: 5,194
登録日時: 00/04/03


RE:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:13   ofukuda さんへの返信です。 ofukuda さんへの返信です。
  このスレッドに返信します… 返信

>OSでは日付を秒数で所持していますが、OracleのDATE型のデータを前述の値
>(秒数)に変換する方法はOracleにはあるのでしょうか?

いつの日付を基準にするのですか?
とりあえず、(変換したい日付 - 基準の日付) * 24 * 60 * 60
で秒数になると思いますが。

ofukuda

投稿数: 89
登録日時: 01/05/02


RE[1]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:13   カサブランカ さんへの返信です。 カサブランカ さんへの返信です。
  このスレッドに返信します… 返信

>UNIXなどのような、1970 年 1 月 1 日午前 0 時 0 分 0 秒からの通算
時間
>のことでしょうか?

そうです。その通りです。UCTの1970/1/1からの通算秒数のことです。

hiratsuka110918

投稿数: 1,423
登録日時: 04/10/29


RE:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:19   ofukuda さんへの返信です。 ofukuda さんへの返信です。
  このスレッドに返信します… 返信

Unix通算秒等のことですよね?
以前、同じ経験をしました。別な人間が調べたのですが、
結局、出来ない。という結論に達し、Cで作成して対応しました。
(OTNだったのかは分かりませんが、似たようなサイトでも調べて
いたようでした。)

左上段回し蹴り

投稿数: 874
登録日時: 02/07/27


RE:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:20   ofukuda さんへの返信です。 ofukuda さんへの返信です。
  このスレッドに返信します… 返信

こんにちは。

実験する環境がないので確実な答えではありません、また、
的を得ているかもわからなくてすみません。
過去に以下のようなことをした記憶があります。
たしかその日の00:00:00からの秒計算です。
select to_char( sysdate, 'SSSSS' ),
    to_char( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
from dual;
参考までに・・・


カサブランカ

投稿数: 395
登録日時: 03/01/07


RE[2]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:24   ofukuda さんへの返信です。 ofukuda さんへの返信です。
  このスレッドに返信します… 返信

>>UNIXなどのような、1970 年 1 月 1 日午前 0 時 0 分 0 秒からの通算
>時間
>>のことでしょうか?
>
>そうです。その通りです。UCTの1970/1/1からの通算秒数のことです。
ORACLEの関数はないと思いますので、自分で関数を作ることになると思います。
内部形式は日付型で通算時間を持っている訳ではありませんので...
ケースによっては単純な式ですので、SQL文として書くことも可能ですが、
お勧めはし難いです。
単純な場合は、以下のような形式の式となります。
秒+分*60+時*3600+(通算日-1)*86400+(年-70)*31536000+((年-69)/4)*86400



カサブランカ

投稿数: 395
登録日時: 03/01/07


RE[1]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:31   左上段回し蹴り さんへの返信です。 左上段回し蹴り さんへの返信です。
  このスレッドに返信します… 返信

>こんにちは。
>
>実験する環境がないので確実な答えではありません、また、
>的を得ているかもわからなくてすみません。
>過去に以下のようなことをした記憶があります。
>たしかその日の00:00:00からの秒計算です。
>select to_char( sysdate, 'SSSSS' ),
>    to_char( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
> from dual;
>参考までに・・・
これは聞いたことがあったような...
その日の通算秒、その年の通算日は、ORACLEで取れるのであれば、
ケースによって式はかなり単純になりますね。


ofukuda

投稿数: 89
登録日時: 01/05/02


RE[1]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:31   jiropochi さんへの返信です。 jiropochi さんへの返信です。
  このスレッドに返信します… 返信

>>OSでは日付を秒数で所持していますが、OracleのDATE型のデータを前述の値
>>(秒数)に変換する方法はOracleにはあるのでしょうか?
>
>いつの日付を基準にするのですか?
>とりあえず、(変換したい日付 - 基準の日付) * 24 * 60 * 60
>で秒数になると思いますが。

返信ありがとうございます。
それは考えたのですが、基準の日はOS依存の1970/01/01の0:00になると思いま
すが、この基準日をあまり意識したロジックにしたくないのです。

ofukuda

投稿数: 89
登録日時: 01/05/02


RE[1]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:34   hiratsuka110918 さんへの返信です。 hiratsuka110918 さんへの返信です。
  このスレッドに返信します… 返信

>Unix通算秒等のことですよね?
>以前、同じ経験をしました。別な人間が調べたのですが、
>結局、出来ない。という結論に達し、Cで作成して対応しました。
>(OTNだったのかは分かりませんが、似たようなサイトでも調べて
>いたようでした。)

返信ありがとうございます。
やはりそうですか・・・・。・・・・ふぅ。

ofukuda

投稿数: 89
登録日時: 01/05/02


RE[2]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:40   カサブランカ さんへの返信です。 カサブランカ さんへの返信です。
  このスレッドに返信します… 返信

>>こんにちは。
>>
>>実験する環境がないので確実な答えではありません、また、
>>的を得ているかもわからなくてすみません。
>>過去に以下のようなことをした記憶があります。
>>たしかその日の00:00:00からの秒計算です。
>>select to_char( sysdate, 'SSSSS' ),
>>    to_char( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
>> from dual;
>>参考までに・・・
>これは聞いたことがあったような...
>その日の通算秒、その年の通算日は、ORACLEで取れるのであれば、
>ケースによって式はかなり単純になりますね。

返信ありがとうございます。
参考にさせて頂きます。

左上段回し蹴り

投稿数: 874
登録日時: 02/07/27


RE[2]:DATE型から秒数を取得する方法について
投稿時刻: 2004/11/22 14:42   カサブランカ さんへの返信です。 カサブランカ さんへの返信です。
  このスレッドに返信します… 返信

こんにちは。

>これは聞いたことがあったような...
>その日の通算秒、その年の通算日は、ORACLEで取れるのであれば、
>ケースによって式はかなり単純になりますね。
ただ、本件はどうやら何年前の通算を秒でと
いうことみたいなので、ぜんぜん違う答え
になってしまいました。失礼しました・・







ウェブサイトのご使用条件 | 個人情報保護基本方針/情報保護基本方針